gpt4 book ai didi

c++ - 如何在不关闭文件的情况下覆盖文件

转载 作者:行者123 更新时间:2023-11-28 07:45:30 25 4
gpt4 key购买 nike

关于如何在不覆盖文件的情况下写入文件有很多问题。

但是这次我需要知道如何打开一个文件,然后在其中写入一个包含几个字符的值。该值非常短,但是用更新值替换文件内容的过程可能会发生十亿次。

那么问题又来了:有没有办法写这样的文件,打开一次,多次覆盖内容之前不关闭?

也许如果我告诉你为什么我需要这个,它会帮助你给我一个更好的解决方案。我需要将模拟器的当前时间写入文件以供另一个模拟器读取和使用(用于同步目的)

和伪代码:

int main() {

int i = 0;
std::ofstream myWriteFile;
ostringstream out;
myWriteFile.open("text.txt");

while (i < 4) {
out.str("");
out << currentTime();
myWriteFile << out.str() << std::endl;
i++;
}

myWriteFile.close();
return 0;
}

最佳答案

在使用 std::ostream::seekp 写入文件之前将“put”指针定位到文件的开头:

myWriteFile.seekp(0);

“put”指针指定了你想在文件中写入的位置。当您写入内容时,它会自动递增,这就是为什么连续写入文件会导致数据附加到先前写入数据的末尾。

关于c++ - 如何在不关闭文件的情况下覆盖文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com