gpt4 book ai didi

c++ - 程序不会在 exit() 函数之前打印行?

转载 作者:行者123 更新时间:2023-11-30 01:54:53 29 4
gpt4 key购买 nike

我有一个用 C++ 编写的学校小项目,我们必须考虑一些错误,并在发生错误时退出程序。基本上,在 else 语句中,当表达式被评估为 false 时,就好像它不会将错误写入文件。如果我将它输出到控制台(通过 cout)而不是将它写入文件,它工作得很好,但是当我尝试将它写入输出文件时,它不起作用。基本上,这是我的问题。我的教授要求所有输出都到文件,这就是我不能使用 cout 的原因。那么为什么它会输出到控制台,而不是文件呢?

附言我正在将其他内容输出到文件并且它工作正常,所以为了记录,我认为它已缩小到 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 << "Error. Incorrect temperature unit, must be either a capital C or a capital F. Program ended." << std::flush;

outputFile << "Error. Incorrect temperature unit, must be either a capital C or a capital F. Program ended." << std::endl;

关于c++ - 程序不会在 exit() 函数之前打印行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389796/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com