这是我的代码。
ifstream inFile;
ofstream outFile;
string line, line2;
inFile.open("DATA.txt");
outFile.open("DATA.txt");
getline(inFile, line);
cout << line;
getline(inFile, line2);
cout << line2;
getline(cin, line);
getline(cin, line2);
outFile << line << "\n" << line2;
据我了解,getline(inFile,line)应该将文本文件的第一行分配给一个名为line的字符串。然后,cout <<行应将该字符串打印到cmd窗口中。但是,这不起作用。
我可以使用getline(cin,line)和outFile很好地输入。该文件已更新,我可以看到输入的内容,但只是无法正确读取和打印行。
p.s这是我的第一个问题,我不确定如何在标题中提出这个问题,因此我很容易受到批评。
答案 0 :(得分:0)
在大多数平台上,std::cout
通常会缓冲输出数据,直到输出换行符或显式刷新缓冲区后才会刷新到控制台。
尝试使用:
cout << line << '\n';
或者:
cout << line << endl;
如果您不想输出换行符,请使用:
cout << line << flush;
答案 1 :(得分:0)
所以我知道了。当我有
inFile.open("DATA.txt");
outFile.open("DATA.txt");
我认为outFile.open覆盖了inFile.open,仅导致输出部分起作用。 只需将outFile.open移至输出部分之前,而不是将其修复之前即可。我确定我的代码还有其他草率的问题,但这将其固定到了可以正常工作的地步。