fstream未创建新文件
fstream not creating new file
我正在尝试学习动态文件访问。我的代码如下:
int main()
{
dtbrec xrec; // class object
fstream flh;
// Doesn't create a new file unless ios::trunc is also given.
flh.open("database.txt", ios::in | ios::out | ios::binary);
flh.seekp(0,ios::end);
xrec.getdata();
flh.write((char*)&xrec, sizeof(dtbrec));
flh.close();
}
我认为fstream
默认情况下会创建一个新文件"database.txt",如果它不存在的话。有什么可能出错的想法吗?
关于fstream:的一些指针
a。如果使用反斜杠指定目录,例如使用fstream f;
f.open("文件夹\文件",ios:out)
它不起作用,反斜杠前面必须有一个反斜杠,所以正确的方法是:
f.open("文件夹\\文件",ios:out)
b。如果你想创建一个新文件,这是行不通的:
f.open("file.txt",ios:in|ios:out|ios:binary)
正确的方法是首先创建文件,使用ios:out或ios:trunc
f.open("file.txt".ios::out)或f.open("file.txt",ios:trunk)
然后
f.open("file.txt",ios:in|ios:out|ios:binary)
c。最后可以按照这个答案中指定的顺序,fstream未创建文件
基本上ios::in要求已经有一个现有的文件。
尝试使用ofstream
,如果它还不存在,它会自动创建一个文件。或者,如果您想在流上同时进行输入和输出,请尝试使用fstream
,但不需要指定ios::in|ios::out|ios::binary
,因为fstream
会自动为您设置。
除了Stephen Jacob说的,我发现我需要做
f.open("file.txt",fstream::trunc|fstream:::out);
以便实际生成文件。只是做trunk没用。
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 从文件中读取多行.txt字符串删除空格并创建新文件进行输出
- 如何限制文件大小,以便我的程序在变大之后创建一个新文件?并编辑新创建的文件的名称
- 需要更新Qt .pro和Visual Studio .vcxproj添加新文件
- C 如何将二进制文件的一部分复制到新文件
- 将单词写入新文件
- Clang 使用 LibTooling Rewriter 生成新文件
- 从Ubuntu中的CPP程序创建新文件
- Windows Portable设备 - 创建 /复制 /删除新文件时通知
- 代码块在尝试编译或创建新文件时出现"An assertion failed!"错误
- C++,打开和编辑文本文件中的数字数据,并将结果放入新文件中
- C++读取添加到目录中的新文件
- boost::log关闭日志文件并打开一个新文件
- 可执行文件无法在双击执行时创建新文件
- 如何知道何时将新文件添加到 Windows 中的文件系统
- 流未正确创建新文件
- 使用std :: ifstream打开一个新文件
- 从一个字符串复制到另一个字符串并粘贴到新文件中
- inotify 的替代方法,用于检测何时在文件夹下创建新文件
- 此项目不会将整数读取为二进制并将其作为二进制输出到新文件