1. 我用C语言编的程序总是闪退
VS编译器的问题,貌似在return 0;之前加上个getchar()就可以了。这个是编译器的差异,以前用win_tc的时候后面必须加上getch();
2. 新手学C问题:为什么我的C语言程序老是闪退
一闪而过是程序自动结束,同时编译器没有提供结果驻留功能。对于此种情况,可以手动在代码结尾增加驻留功能的函数。常用的有如下两种:
1 通过getch函数驻留。
getch会等待从屏幕的输入,在main函数退出前,增加
getch();
调用,系统会等待输入,直到有新的输入,才会退出界面。
2 通过system("pause");来实现驻留。
在main退出前调用
system("pause");
会调用系统的pause函数,提示并实现按任意键退出程序效果。
如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。
在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。
由于该问题仅在windows平台出现,所以以上介绍均针对windows平台。
3. c语言编程的exe文件为什么按回车会闪退,求原理解释。
这些都是依赖于windows的控制台窗口,程序执行完就退出了。
因为程序已经运行结束正常退出了,想看结果就去cmd里敲执行文件完整路径,或者给程序加getchar() scanf() 用stdio的输入函数来拦截程序不让它立马退出,或者调用用stdlib的system函数执行pause命令实现按任意键继续。
例如:
新建文本名叫c.c的文件,对文件进行编码,输入以下程序:
#include <stdio.h>
int main(void)
{
printf ("hellow world");
return 0;
}
三保存退出后,用gcc编译命令,编译c.c文件,命令如下
gcc c.c -o c
生成的c文件就是.exe文件
(3)C语言编译完运行控制台闪退扩展阅读:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
4. c语言编译完的可执行文件运行后为什么闪退
1、编译后直接双击运行的,非GUI的程序一般不需要等待用户,运行完了当然自动退出了,执行main()函数末尾返回。如果要是想停一下等待看结果,main()函数末尾加一句system("pause");
2、例如
#include<stdio.h>
intmain()
{
printf("HelloWorld! ");
system("pause");
return0;
}