[英]Why is getline (from a file) to cout (that line) not printing the line?
这是我的代码在这里。
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输入很好。 该文件已更新,我可以看到我在其中键入的内容,但是它只是无法正确读取和打印行。
ps:这是我的第一个问题,我不确定如何在标题中提出这个问题,因此我很容易受到批评。
在大多数平台上, std::cout
通常会缓冲输出数据,并且直到输出换行符或显式刷新缓冲区后才会刷新到控制台。
尝试使用:
cout << line << '\n';
要么:
cout << line << endl;
如果您不想输出换行符,请使用:
cout << line << flush;
所以我想通了。 当我有
inFile.open("DATA.txt");
outFile.open("DATA.txt");
我认为outFile.open覆盖了inFile.open,导致仅输出部分起作用。 只需将outFile.open移至输出部分之前,而不是将其修复之前即可。 我确定我的代码还有其他草率的问题,但这将其固定到了可以正常工作的地步。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.