我有以下代码,由 Visual Studio 2008 编译:
int main() {
freopen ("C:\\temp\\stdout.txt","w",stdout);
cout << "aaa" << endl;
while (true) {
string in = "";
getline(cin, in);
cout << "bbb" << endl;
if (in.find("exit") != string::npos) {
break;
}
}
fclose (stdout);
return 0;
}
在 Notepad++ 中打开“C:\temp\stdout.txt”以监视文件更改(通过手动单击文件选项卡进行刷新)。
运行时:
它立即打印“aaa”,这是正确的;
然后我输入“asdf”,但是,“bbb”没有打印或刷新。
然后我输入“asdf”,但是,“bbb”没有打印或刷新。
然后我输入“asdf”,但是,“bbb”没有打印或刷新。
然后我输入“exit”,输出如下:
aaa
bbb
bbb
bbb
bbb
我尝试了以下方法来刷新,但它们都不能立即刷新字符串。
cout << "bbb" << endl << flush;
cout << "bbb" << endl;
cout.flush();