当前位置: 首页 > 知识库问答 >
问题:

程序将不打印行前退出()函数?

孙德宇
2023-03-14

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

P. S.我将其他东西输出到文件中,它工作正常,所以为了记录在案,我认为它被缩小到其他语句中的一小块代码。

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);
    }

共有2个答案

闻人宇定
2023-03-14

stdout和stderr都是缓冲的。你需要告诉你的程序刷新你的输出文件

如果你在做C,你会,

fflush(stdout);
//or
fflush(stderr);

既然你在做C,你就拼写fflush,endl,

cout << std::endl; // endl does the flushing

查看这个stackoverflow: endl

拓拔奇
2023-03-14

您需要在退出程序之前刷新缓冲区。

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;
 类似资料:
  • 问题内容: 我是一个相对较新的程序员,所以这可能是一个非常简单的问题,但是让我有些困惑。 我正在尝试将Java GUI的最终输出打印到打印机。现在,在我的GUI中,有了它,当您单击打印时,会弹出一个弹出窗口,列出可用的打印机,并根据您选择的打印机,将其打印到该打印机。 但是事实并非如此。我通过搜索互联网来解决此问题,从而获得了大部分代码,并找到了一些很有前途的代码。但是,它是从文件打印出来的。因此

  • 问题内容: 我在Windows 7中使用命令提示符制作了一个可执行jar 创建了.jar文件。但是当我尝试打开它时,我会看到一个弹出窗口,其中显示 但是,当我使用 在命令提示符下,它可以正常工作。这是怎么回事?我希望能够双击它。 问题答案: 哈,我发现了问题所在。我使用jdk1.7编写了程序,但安装了jre6。我去升级到jre7,现在可以正常工作了:) 的 行在命令提示符下工作,因为我的Java路

  • 我有一个flask应用程序,只有一条路线,没有复杂的事情发生,运行在docker容器中。我一辈子都不能让print语句出现在日志中(

  • 我决定回到编程(特别是C),为此我开始开发命令行解析器。最终,目标是将其变成一个简单的类,我可以在未来的一些项目中导入。 这个测试程序只是简单地列出它收到的参数数量,然后打印出来,每行一个,然后退出。 这是我的代码: 以下是终端中发生的情况: 为什么它不按它应该的那样打印论点?它清楚地识别论点,那么问题是什么?我肯定我在这里错过了一些明显的东西。

  • 问题内容: 在程序退出之前,如何拥有要执行的功能或某些东西?我有一个脚本,它将在后台不断运行,并且我需要它在退出之前将一些数据保存到文件中。有这样做的标准方法吗? 问题答案: 检出模块: http://docs.python.org/library/atexit.html 例如,如果我想在应用程序终止时打印一条消息: 请注意,这对于正常终止脚本非常有用,但是在所有情况下都不会调用它(例如致命的内部

  • 23.9 程序退出 每个SpringApplication都会向JVM注册一个关闭钩子,以确保在退出时ApplicationContext被正常关闭。所有标准的Spring的生命周期回调(如DisposableBean接口或@PreDestroy注解)都可以使用。 另外,如果希望bean在SpringApplication.exit()被调用时返回特定的退出码,那么bean可以实现org.spri