我正在尝试使用 C++ 在文件中的特定位置写入条目
所以基本上我有
ofstream ofs("file.dat", ios::binary | ios::app);
ofs.seekp(220, ios::beg);
ofs.write((char *)&i, sizeof(i));
但无论我做什么,它总是写在文件的末尾。
我想这与iso::app
因为根据文档
app (append) Set the stream's position indicator to the end of the stream before each output operation
但如果我使用ate或者什么都不做,它总是会删除文件的内容。
任何帮助都会很棒:)
是的,这是ios::app
这就是导致这种行为的原因。将其替换为ios::in | ios::out
.
edit:您的问题并不清楚,但您的评论表明您正在尝试insert数据位于文件中间,而不是覆盖文件的一部分。如果确实如此,您几乎必须使用第二个文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)