覆盖文件中的数据而不关闭它并重新打开它。 (c++)
Write over data in a file without closing it and opening it back up. (c++)
我想打开一个文件,读取数据,经过计算后,将读取的数据覆盖,但我不想关闭它并重新打开它,因为这会减慢我的速度程序,因为它一遍又一遍地这样做,它确实减慢了速度。
本质上,我有一个起始编号,然后我进行一些计算并继续计算下一个编号。因为我不想重做所有这些计算,所以我有一个包含起始编号的文件和一个包含输出列表的文件。我想更改起始编号,以免不必要地重做计算。如果您需要查看我的一些代码,请直接说出来。感谢guys/gals/variations。
我正在使用 C++。
我想如果你把内容放在内存中会更好,但无论如何你可以使用 seekp 将指针更改为文件中的实际位置
我相信您可以使用 fstream 来实现您想要实现的目标,语法与此非常相似:
std::fstream file;
file.open ("textfile.txt", std::fstream::in | std::fstream::out | std::fstream::app);
这里有一个link更好的解释http://www.cplusplus.com/reference/fstream/fstream/open/
因为我已经到达文件末尾,所以将设置 eof 标志。我需要明确使用(ifile 是本例中的 fstream 变量)ifile.clear
– 然后尝试寻找:
ifile.clear();
ifile.seekg(0, ios::beg);
我想打开一个文件,读取数据,经过计算后,将读取的数据覆盖,但我不想关闭它并重新打开它,因为这会减慢我的速度程序,因为它一遍又一遍地这样做,它确实减慢了速度。 本质上,我有一个起始编号,然后我进行一些计算并继续计算下一个编号。因为我不想重做所有这些计算,所以我有一个包含起始编号的文件和一个包含输出列表的文件。我想更改起始编号,以免不必要地重做计算。如果您需要查看我的一些代码,请直接说出来。感谢guys/gals/variations。 我正在使用 C++。
我想如果你把内容放在内存中会更好,但无论如何你可以使用 seekp 将指针更改为文件中的实际位置
我相信您可以使用 fstream 来实现您想要实现的目标,语法与此非常相似:
std::fstream file;
file.open ("textfile.txt", std::fstream::in | std::fstream::out | std::fstream::app);
这里有一个link更好的解释http://www.cplusplus.com/reference/fstream/fstream/open/
因为我已经到达文件末尾,所以将设置 eof 标志。我需要明确使用(ifile 是本例中的 fstream 变量)ifile.clear
– 然后尝试寻找:
ifile.clear();
ifile.seekg(0, ios::beg);