【问题标题】:C++ beginner, execution window disappears quicklyC++初学者,执行窗口消失得很快
【发布时间】:2012-02-24 18:33:00
【问题描述】:

我是 C++ 的初学者,我试图编写一个程序来求两个数字的平均值,但是当我运行该程序时,窗口消失了,我看不到结果。有人可以帮帮我吗? 谢谢

 #include <iostream>
 using  namespace std;
 int main()
 {
 int number1,number2,answer;
 cout << "number1? ";
 cin >> number1;
 cout << "number2? ";
 cin >> number2;

 answer = (number1 + number2)/2;

 cout << answer<<endl;
 return 0;
 }

【问题讨论】:

    标签: c++ add


    【解决方案1】:

    解决方案 #0(正确):
    从 shell 运行程序 (cmd.exe, bash)

    解决方案 #1(正确):
    从正统的文件管理器运行程序。远程经理或午夜指挥官。

    解决方案 #2(替代方案);
    将输出重定向到文件。 program.exe &gt;file.txt 来自命令行。

    解决方案 #3(不正确):
    启动消息框,使用“sleep”/“Sleep”延迟程序终止。

    解决方案 #4(不正确):
    在程序结束时请求用户输入。

    解决方案 #5(不正确):
    在“return 0”上设置断点,调试程序。

    解决方案#6(windows+msvc):
    通过 Ctrl+F5 使用调试版本从 msvc 启动程序。您将收到“按键继续”提示。

    【讨论】:

    • pft,#5 并不合适。 #6也不再适用于MSVC10 :(
    • @MooingDuck:Ctrl+F5 在我的机器上以调试和发布模式 (MSVC10 Express) 工作。
    • @Blastfurnace:我的运行,但它会立即关闭 F5 和 CTRL+F5。我想知道为什么我们的不同
    • @MooingDuck:谷歌表明你不是唯一有这个问题的人。不幸的是,我找不到明显的补救措施。
    【解决方案2】:

    在您的 return 语句中放置一个断点。它不会因未捕获的异常而停止,但可以使用 main 最外层的 try/catch 块来修复。

    【讨论】:

      【解决方案3】:

      在返回之前添加 system("PAUSE");这应该可以解决您的问题。

      【讨论】:

        【解决方案4】:

        如果您使用的是 Visual Studio,请按 CTRL+F5 运行。这会为控制台应用程序插入“Hit RETURN to continue”。

        【讨论】:

          【解决方案5】:

          包括这个标题:

          #include <stdio.h>
          

          并在return 之前添加对getchar() 的调用:

          cout << answer<<endl;
          
          getchar(); // wait for user input
          
          return 0;
          

          【讨论】:

            【解决方案6】:

            不保证 SigTerm 的解决方案 #6(上图)有效。在 Visual Studio 中,您应该右键单击您的项目并选择:

            属性 |配置属性 |链接器 |系统 |子系统

            然后在下拉列表中选择控制台 (/SUBSYSTEM:CONSOLE)

            【讨论】:

              【解决方案7】:

              我一直讨厌这样...我总是在您返回之前找到最容易成为system("pause"); 的方法,但这不是一个可移植的解决方案(虽然是 cin.get)。还有很多其他方法,下面的链接中提到了其中一些。

              http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/1555ce45-8313-4669-a31e-b95b5d28c787

              编辑:system("pause"); 很糟糕,永远不应该被使用,并且可能会也可能不会像我们所知的那样结束这个星球上的生命,即使是一个名为“你好”的项目的初学者。使用system("pause") 既昂贵又危险,如果你使用它,你将再也见不到你爱的人。不要这样做。使用cin.get 或其他内容。

              【讨论】:

              • 感谢您的讽刺。但说真的,既然cin.get() 是标准的、可移植的并且工作得很好,为什么还要使用像system("pause"); 这样蹩脚的东西?
              • @FredLarson - 可能是因为像我这样的人在有更好的解决方案时不断传播system("pause")。下次有人问的时候,我会引导他们到cin.get()! :)
              • @FredLarson:当您可以从 shell 启动程序时,为什么还要使用 cin.get()
              • @SigTerm - 因为不是每个人都对 shell 感到满意......当我的 IDE 完全有能力为我完成所有这些工作时,为什么我必须手动进行编译、链接等?就个人而言,我确实使用命令行,但这可能是会使用的反驳论点。如果您要问如何“阻止输出这么快消失”,那么您很可能不是 shell 专家。
              猜你喜欢
              • 2012-07-23
              • 2021-10-06
              • 1970-01-01
              • 1970-01-01
              • 2019-01-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多