请帮助,代码执行输出而不是
123456
刚
456
为什么在写文件之前清除文件? Trunc未设置
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream a{ "1.txt",ios_base::ate };
a << "123";
a.close();
ofstream b{ "1.txt",ios_base::ate };
b << "456";
b.close();
ifstream c{ "1.txt" };
string str;
c >> str;
cout << str;
return 0;
}
答案 0 :(得分:0)
您需要在第二个编写器中使用app
将内容附加到文件而不是重写,如下所示:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream a{ "1.txt",ios_base::ate };
a << "123";
a.close();
ofstream b{ "1.txt",ios_base::app }; //notice here is app instead of ate
b << "456";
b.close();
ifstream c{ "1.txt" };
string str;
c >> str;
cout << str;
return 0;
}
与this question中一样:
std :: ios_base :: ate并不意味着std :: ios_base :: app
因此,如果您使用ate
,则并不意味着它会将内容附加到文件中。
答案 1 :(得分:0)