保持屏幕畅通

时间:2013-07-28 23:32:14

标签: c++ if-statement exit

在我的C ++书籍示例中,我使用系统(“暂停”)来保持屏幕打开,这是我从操作系统中学到的仅用于作业。现在我的书中有一个例子,它使用exit(),依赖于true或false,我的屏幕消失了。如果我取出exit()程序一直在计算(这就是作者放在exit()中的原因)但是如何解决这个问题?我正在使用Microsoft VS C ++ Express 2012 for Windows Desktop。

//prime.cpp
// demonstrates IF statement with prime numbers
#include <iostream>
using namespace std;
#include <process.h>        //for exit()

int main()
    {
        unsigned long n,j;
        cout << "Enter a number:  ";
        cin >>n;                    //get number to test
        for (j=2; j<= n/2; j++)     //divide by integer from
            if(n%j==0)              //2 on up; if remainder is 0,
            {                       //it's divisible by j

            cout <<"It's not prime; divisible by " <<j<<endl;
            exit (0);               //exit from program
            }
        cout <<"It's prime\n";

        system ("pause");    //the only way I can get screen to stay open
        return 0;
    }

如果答案是素数工作正常。如果答案是非主要屏幕眨眼。如果我删除exit(),我得到这个结果:

输入一个数字:8 它不是素数;可被2整除 它不是素数;可被4整除 这是最重要的 按任意键继续。 。

3 个答案:

答案 0 :(得分:7)

如果要运行终端程序,请从终端运行它。由于您调用程序的方式,屏幕正在消失。该计划没有任何问题。

答案 1 :(得分:2)

您可以通过重新构建代码来使用break;代替exit(0)来解决此问题。前者只会跳出循环,而后者将结束整个程序。

当调用exit(0)时,执行永远不会到达system("pause");来电,因此程序会立即结束而不会提示用户继续。

另一方面,

break;将跳出循环。

如果您需要有关如何具体实施此更多指导,请与我们联系。既然它是作业,你应该先单独尝试:)。提示:由于代码的设置方式,仅使用break;代替exit(0)将无效。

答案 2 :(得分:2)

如果您想在任何时候退出循环,可以使用中断语句。对于屏幕暂停,您可以使用 conio.h 中的 getch()功能,但不是标准C ++ getch()等待字符输入(您可以在此语句中使用它,按任意键继续)。对于getch(),使用符合ISO C ++的 _getch()