我正在尝试学习动态文件访问。我的代码如下:
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’,如果它不存在。关于什么可能是错的任何想法?
原文由 Stephen Jacob 发布,翻译遵循 CC BY-SA 4.0 许可协议
关于 fstream 的一些提示:
一个。如果您使用反斜杠指定目录,例如使用 fstream f;
它不起作用,反斜杠必须在反斜杠前面,所以正确的方法是:
湾。如果你想创建一个新文件,这将不起作用:
正确的方法是首先使用 ios::out 或 ios::trunc 创建文件
接着
C。最后,它可能是按照这个答案中指定的顺序, fstream 没有创建文件
基本上 ios::in 需要已经有一个现有的文件。