之前上课的时候有学生说他用VC++编写C语言控制台程序闪退,我发现这是一个好问题,于是深挖一下,并在此做个记录:
这是因为他直接运行了VC++在debug文件夹里面生成的exe文件,导致程序一闪而过。
如果经过编译-生成-执行三个步骤后,就不会出现一闪而过的情况,而是多了一个“Press any key to continue”,这是由于VC++的阻断,在集成开发环境里面运行的时候加了一个pause指令。
因此,如果想在直接运行exe的时候避免闪退,可以采用下面两种方法:
方法一:
- 添加conio.h头文件: #include <conio.h>;
- 随后在需要等待的地方(要在return之前)加上getch(),接受来自用户的任意输入。
方法二:
- 添加windows.h头文件:#include <windows.h>,
- 随后在需要等待的地方(要在return之前)加上system(“pause”),等待用户按一个键再返回。