在对文件进行读取前,并没有将之前写入创建的对象关闭,导致读取失败。
使用ofstream写入数据至文件时,如果使用默认写入方式,则有可能出现文件尺寸大小与实际数据大小不一致的问题。
我正在尝试使用ofstream类将一些东西写入文件,但所有发生的事情都是文件被创建,然后什么都没有。我这里有一些简单的代码:#include <iostream>
#include <fstream>
#include <cstring>
#include <cerrno>
#include <time.h>
using namespace std
int main(int argc, char* argv[])
{
ofstream file
file.open("test.txt")
if (!file) {
cout <<strerror(errno) <<endl
} else {
cout <<"All is well!" <<endl
}
for (int i = 0i <10i++) {
file <<i <<"t" <<time(NULL) <<endl
}
file.flush()
file.close()
return 0
}
当我创建一个控制台应用程序时,一切正常,所以我担心这段代码并不完全具有代表性。但是,我在一个更大的项目中使用这样的代码 - 说实话 - 我不完全理解(Neurostim)。我应该写一些编译成dll的类,可以由Neurostim加载。 运行代码时,会创建“test.txt”,然后“无错误!”打印,因为这显然是strerror的输出。显然这是错误的。否则,应用程序运行完美,而不是因为我正在尝试写入损坏的流这一事实。它只是不这样做。在我看来,权限没有问题,因为文件实际上是创建的。 有没有人有什么想法会导致这种奇怪的行为?
#define _str(r) #r#define _filename(r) _str(C:/Users/Administrator/Desktop/新建文件夹/##r)
获取绝对路径 _getcwd 参考 http://baike.baidu.com/view/982170.htm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)