我正在学习c ++并且正在使用Visual Studios但是我今天切换到了代码块而且遇到了麻烦。我的编译器是MinGW,如果这很重要的话。无论如何,我做了一个看起来像这样的练习程序:
#include <iostream>
using namespace std;
Int main()
{
Int x;
cin >> x;
If(x == 1)
Exit(0)
Return 0;
}
当我构建它时,我在包含Exit(0)的行上出现错误。为什么是这样?另外,如何让底部的构建/调试工具栏重新出现?
答案 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 ++区分大小写。这会导致您的代码出现许多问题(不只是Exit
与exit
)。
除此之外,作为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
,然后从那里退出(在正确执行析构函数之后)。