繁体   English   中英

为什么getline(从文件)到cout(该行)不打印该行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM