-1
我目前正在編寫一個將cout寫入文件的程序,直到用戶按下控件D.之後,我想再次向終端發送cout。這裏是我的代碼示例將cout寫入文件,然後返回到終端
freopen(outputfile,"w",stdout);
for(;;)
{
if(cin.fail()) //user pressed control-D
{
break;
}
string s;
cin >> s;
cout << s << endl;
}
cout << "COMPLETE" << endl;
「COMPLETE」cout仍在寫入我的文件。我怎樣才能阻止這種所以不是在迴路中的任何COUTS是正常的,並提前
'如果(cin.fail())//用戶按下control-D'有很多原因'cin.fail()'是真的,除了聲明的條件! – 2014-11-21 02:11:43
不要使用freopen,你會丟失標準輸出流。改變流緩衝區'cout'代替,然後交換回來。 (雖然這個前提假設你只使用'cout'而不是'stdout'。) – Deduplicator 2014-11-21 02:14:03