C++流:保存到新行而不是覆盖旧行

C++ ofstream: save to a new line instead of overwriting old one

本文关键字:覆盖 新行 保存 C++      更新时间:2023-10-16

所以我写一个简单的程序,你输入 2 个数字,这 2 个数字的乘积在控制台中打印出来,我已经使用 ofstream 成功记录了数字。我的问题是每次程序运行时如何使其打印到另一行,我可能不完全有意义,所以我的意思是:

第一次运行:

Number 1: 10  Number 2: 45

第二次运行:

Number 1: 10  Number 2: 45
Number 1: 50 Number 2: 13

我希望它写入新行而不是基本上替换第一行,任何帮助将不胜感激,我收集它很容易,但我找不到方法。

听起来您要做的是附加到文件,而不是覆盖它。 在ofstream的构造函数中,或者当你调用open时,传递std::ios_base::app作为第二个参数。

见 https://en.cppreference.com/w/cpp/io/basic_filebuf/open

也许你可以试试这个小例子,将下一次执行附加到日志文件中:

#include <fstream>      
#include<iostream>    
using namespace std;
int main () {
std::ofstream ofs;
int number1, number2;
ofs.open ("test.txt", std::ofstream::out | std::ofstream::app);
cout << "Number1: ";
cin >> number1;
cout << "Number2: ";
cin >> number2;
cout << "Sum of two numbers: " << number1 + number2;
ofs << "Number1: " << number1 << " Number2: " << number2 << std::endl;
ofs.close();
return 0;
}