Eri*_*ney 1 c++ fstream iostream
我有一个用 C++ 编写的学校小项目,我们必须解决一些错误,并在发生错误时退出程序。基本上,在 else 语句中,当表达式被评估为 false 时,就好像它不会将错误写入文件。如果我将它输出到控制台(通过 cout)而不是将其写入文件,它工作得很好,但是当我尝试将它写入输出文件时,它不起作用。基本上,这就是我的问题。我的教授要求所有输出都写入文件,这就是我不能使用 cout 的原因。那么为什么它会将其输出到控制台,而不是文件呢?
PS 我正在将其他内容输出到文件中,并且工作正常,因此为了记录,我认为它已缩小到 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);
}
Run Code Online (Sandbox Code Playgroud)
您需要在退出程序之前刷新缓冲区。
outputFile << "Error. Incorrect temperature unit, must be either a capital C or a capital F. Program ended." << std::flush;
Run Code Online (Sandbox Code Playgroud)
或者
outputFile << "Error. Incorrect temperature unit, must be either a capital C or a capital F. Program ended." << std::endl;
Run Code Online (Sandbox Code Playgroud)