请问专家,用c语言编译的.exe文件,离开编译环境,为何不能运行?要怎样才能运行

如题所述

这个不需要专家来回答,我想我应该能告诉你为什么。双击exe,一闪而过,而在编译器里运行的时候不会,因为在编译器里是调试状态,有些编译器默认会暂停,如果不想一闪而过,可以加#include<conio.h>,在main函数的最后(如果有return语句,写在return语句之前。)加一句getch();或getchar();,这两个函数的作用是等待用户输入,区别是getch();输入一个字符后,不显示在屏幕上,不等用户按回车就执行下去,而getchar();则是显示在屏幕上,并等待用户按回车,不过getch();函数在有些编译器里面不认。也可以加#include<stdlib.h>,同样,在最后加一句:system("pause");,这样,编译出来的exe就不会一闪而过了。如果你说的是你编译出来的exe到别人的电脑没法运行,可能由于操作系统不一样,你在那个系统上再编译一次就可以了。完全手打,如果能解决您的问题,请采纳,谢谢。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-05
在VC中,若你说的要运行需要4个dll文件,否则就不能运行;当然你可以设置使用发布,那么产生的exe文件就可以直接运行。
project(工程)----setting(设置)------将Setting for:后的Win32 Debug换成Win32 Release,
这样生成的exe文件就可以独立运行。不过注意,这样编译后,想再换回Debug就不可能,所以一定要留备份。
在tc中,第一步使用compile中的compile to Obj;
第二部使用Make EXE File;
第三部使用Link EXE File
这样才可以使用。当然你需要在程序结束之前,加入暂停语句,否则将看不到结果。
第2个回答  2013-11-05
不可能吧。exe程序在编译环境中结束的时候会有个 press any key to continue!离开了编译环境就没有这个了。程序一运行完DOS窗口就会立即关闭。不想这样的话就在源程序末尾再加个赋值语句的,这样EXE程序就会等你输入了一个数或者字符后再结束。
第3个回答  2019-01-23
最后加个system("pause"); 需要头#include <process.h>
相似回答