代码块退出(0)错误?

时间:2013-12-14 23:41:37

标签: c++ codeblocks

我正在学习c ++并且正在使用Visual Studios但是我今天切换到了代码块而且遇到了麻烦。我的编译器是MinGW,如果这很重要的话。无论如何,我做了一个看起来像这样的练习程序:

#include <iostream>

using namespace std;

Int main()
{
Int x;
cin >> x;
If(x == 1)
Exit(0)
Return 0;
}

当我构建它时,我在包含Exit(0)的行上出现错误。为什么是这样?另外,如何让底部的构建/调试工具栏重新出现?

2 个答案:

答案 0 :(得分:5)

#include <iostream>
#include <stdlib.h>   

int main(){
   using namespace std;
   int x;
   cin >> x;
   if(x == 1) {exit(0);}
   return 0; 
 }

答案 1 :(得分:3)

C和C ++区分大小写。这会导致您的代码出现许多问题(不只是Exitexit)。

除此之外,作为C ++的一个简单规则,忘记exit无论如何都存在。它没有正确执行析构函数,这会破坏RAII。如果你还没有充分研究C ++知道什么是RAII,那么请相信我这是一个非常的事情。

#include <iostream>
#include <cstdlib>

int main() {
    int x;
    std::cin >> x;
    if(x == 1)
        return EXIT_FAILURE; // return something different from the normal exit
    return 0;
}

如果您需要退出main,请使用return,因为我已经更改了上面的代码。如果由于真正的 dire 紧急情况需要退出其他地方(例如,你已经检测到这样一个大问题,甚至试图干净地关闭可能会破坏用户的数据)你可能想要使用abort()。否则,您可能希望抛出一个异常,它将传播回main,然后从那里退出(在正确执行析构函数之后)。