我的C语言Hello World程序编译正常但运行无输出该如何解决
我的Hello World程序没有任何输出,我花了一周时间尝试了网上提到的多种解决方案,包括:
- 在输出末尾添加
\n(写法为printf("Hello World\n");) - 调用
fflush(stdio); - 调用
getch(); - 尝试重装C语言编译器
- 从mingw64切换到mingw32
- 甚至尝试用g++编译代码
- 也在VS Code中通过命令提示符运行测试
但无论怎么操作都没有输出,我的代码如下:
#include <stdio.h> int main(void) { printf("Hello World\n"); return 0; }
我在控制台得到的输出如下:
[Running] cd "g:\C WorkSpace\" && gcc Test.c -o Test && "g:\C WorkSpace\"Test [Done] exited with code=0 in 0.453 seconds
代码可以正常编译并生成.exe文件,可执行文件运行后没有任何打印内容。
补充1
我也在命令提示符中直接运行程序,依然没有输出,情况如下:
Directory of G:\C WorkSpace 02-10-2021 06.34 PM <DIR> . 02-10-2021 06.34 PM <DIR> .. 02-10-2021 06.28 PM <DIR> .vscode 21-09-2021 08.22 AM 82 Hello World.c 02-10-2021 06.33 PM 83 Test.c 02-10-2021 06.34 PM 40,764 Test.exe 21-09-2021 09.57 AM <DIR> TestProjects 3 File(s) 40,929 bytes 4 Dir(s) 510,360,821,760 bytes free G:\C WorkSpace>gcc test.c -o Test G:\C WorkSpace>.\Test G:\C WorkSpace>g++ Test.c -o Test G:\C WorkSpace>.\Test G:\C WorkSpace>
补充2
有网友指出可能是工具链的问题,我在此补充我的安装流程:我从SourceForge下载了最新版的mingw-get-setup.exe(大小86.5kB),运行安装程序后会自动下载组件,之后进入MinGW Installation Manager界面,我勾选了mingw32-base、mingw32-gcc-g++、mingw32-gcc-objc选项,更新了目录,我理解这就是完成安装了,因为过程中下载了不少文件。之后我配置了环境变量PATH,添加了C:\MinGW\bin路径。
补充4
我尝试了命令提示符中所有可行的运行方式,都没有输出:
G:\C WorkSpace>gcc Test.c -o Test G:\C WorkSpace>Test.exe G:\C WorkSpace>.\Test.exe G:\C WorkSpace>./Test.exe '.' is not recognized as an internal or external command, operable program or batch file. G:\C WorkSpace>
补充5
我尝试在VS Code中新建一个C程序,第一次运行有输出,第二次运行就没有输出了,在cmd中运行也没有输出。之后我尝试不用VS Code,直接在cmd中创建文件编译,所有不是在VS Code中编译的文件都可以正常运行。我重新编译VS Code生成的文件,依然没有输出,我认为问题出在VS Code而非编译器或者PATH变量,希望可以得到解决方案。
补充6
最终确认是code-runner扩展的问题,不使用code-runner扩展编译运行程序就完全正常。我已经找到问题原因,本线程可以关闭。感谢各位的帮助。
内容的提问来源于stack exchange,提问作者Nav12

