为什么在文件夹中打开c语言的exe文件,运行以后立马消失了,怎么让它不消失

Python019

为什么在文件夹中打开c语言的exe文件,运行以后立马消失了,怎么让它不消失,第1张

程序运行完成后没有任何义务再让窗口停留在屏幕上,所以必须要加入等待输入的代码。如果希望用户直到按下回车再退出,那么可以在main函数最后调用头文件stdio.h中的getchar()函数并抛弃其返回值。这样程序就会继续等待输入直到你按下回车。有的情况下可能需要连续使用两次getchar(),原因是之前的输入的末尾可能包含回车,而之前的输入语句还没有读入这个回车符(例如之前读取的是一个整数,那么整数输入完后的回车将被输入函数留在缓冲区中),导致第一个getchar()将其读入后立马返回。如果希望用户在按下任意一个键以后就退出,可以在mian函数末尾调用头文件conio.h中的getch()函数并抛弃返回值,这样只要用户按下任意一个键,程序就会退出,经常配合一个提示使用:

printf("按任意键退出……")

getch()

return 0

这两种方法就能让程序执行完成后等待用户按键了。scanf("%*c")也能达到和getchar同样的效果。

事实上,所有的

Console

程序都是运行完成后自动退出的。

Windows

中,如果直接从资源管理器里运行

Console

程序,运行完成后也会自动退出。这与无穷消息循环的

WinGUI

程序不同,所以你看不到输出结果。

而如果在

CMD

命令行里运行,完成后也会退出,不过是返回了

CMD,所以还能看到输出的结果。

实际上这个程序已经输出了结果,但由于完成后自动退出了,所以你看不到而已。

在程序代码最后加一个

getchar()

。等待输入一个数据,这样可以延缓程序完成的时间,保持输出窗口不关闭。以保证你可以看到输出结果。

有时候你需要两个

getchar()。

原因是,你打开了exe之后。程序就开始运行了。运行完后窗口会关闭。

其实电脑已经帮你运行完了所有你的程序,只不过电脑运行的很快,一下就运行完了。你打印出的东西,有显示,但你还没反应过来看不到。

这个问题,你只要在你的程序后面加个scanf语句,就行,这样,你的程序在运行完之后,会等待你输入,就会停在窗口。而你的程序在那个时候是运行完了的