使用file_pos.open(output_file2, ios::app)后,多次写入会导致每次写入的内容累加,如何不累加,清空之前的内容,重新记录
时间: 2024-11-06 22:16:54 浏览: 21
要实现`file_pos.open(output_file2, ios::app)`打开文件并每次写入时清空之前内容,你应该在每次写入之前先关闭文件然后再打开。这样可以确保每次写入都是从头开始。以下是示例:
```cpp
#include <fstream>
// ...
std::ofstream file_pos(output_file2);
if (file_pos.is_open()) {
// 写入数据
// ...
file_pos.close(); // 关闭文件
// 清空并重新打开
file_pos.open(output_file2, std::ios::trunc); // 使用ios::trunc而不是ios::app来清空内容
// 再次写入
file_pos << "新的数据"; // 或者其他写入操作
} else {
std::cerr << "无法打开文件: " << output_file2 << std::endl;
}
```
这里我们使用了`std::ios::trunc`标志,它会清空文件并把文件指针移动到开头,使得下一次写入覆盖掉之前的全部内容。
阅读全文