我有一個用C++編寫的學校項目,我們必須解決一些錯誤,並在出現錯誤時退出程序。基本上,在else語句中,當表達式評估爲false時,就像它不會向文件寫入錯誤。如果我輸出到控制檯(通過cout),而不是寫入文件它工作得很好,但是當我嘗試寫入輸出文件時,它不起作用。基本上,這是我的問題。我的教授要求所有輸出到文件中,這就是爲什麼我不能使用cout。那爲什麼它會把它輸出到控制檯,而不是文件?程序不會在exit()函數之前打印行嗎?
P.S.我正在輸出其他東西到文件,它工作正常,所以對於記錄,我認爲它被縮小到else語句中的小塊代碼。
if(tempUnit == 'C' || tempUnit == 'F')
{
if(tempUnit == 'F')
{
temp = convertTemp(temp, tempUnit);
}
temps[a] = temp;
printTemp(outputFile, tempUnit, temp);
printTimestamp(outputFile, humanDate);
outputFile << endl;
}
else{
// this is where it doesnt work
outputFile << "Error. Incorrect temperature unit, must be " <<
"either a capital C or a capital F. Program ended.";
exit(0);
}
嘗試刷新文件在退出'outputFile << std :: flush;' – Erbureth