std::cout无输出问题求助:代码可运行但完全无打印内容
std::cout无输出问题求助:代码可运行但完全无打印内容
各位大佬好,我碰到个百思不得其解的问题,想请教下大家!
我写了一段超简单的C++测试代码:
#include <iostream> int main() { std::cout << "hello world" << std::endl; return 0; }
这段代码能正常编译通过,也能运行,但就是完全打不出"hello world"。不过如果我故意写错代码(比如少个分号),编译器会正常报错,说明编译流程是没问题的。
先交代下我的环境:
- 编辑器用的是Visual Studio Code
- 编译器是MinGW x86_64版本的gcc
- 系统是Windows 11
我已经折腾过这些操作,但都没解决问题:
- 一开始有一堆奇奇怪怪的错误,后来我关掉了VS Code的“在终端中运行”选项,错误是少了,但输出的问题还是没搞定
- 我反复确认了
std::endl的写法是对的,也试过手动用std::flush刷新缓冲区,结果还是一样 - 试过直接在PowerShell里执行VS Code自动生成的编译运行命令:
if ($?) { g++ hello.cpp -o hello } ; if ($?) { .\hello },依然看不到任何输出
最奇怪的是,我把std::cout换成printf("hello world"),就能正常打出内容!这说明问题肯定是出在std::cout相关的地方。
还有个诡异的小细节:
- 在PowerShell和命令提示符里,直接输入和
hello.cpp相关的命令好像识别不到这个文件,但生成的hello.exe是能被识别的 - 我确认编译是成功的,因为
hello.exe确实生成了,而且用printf的版本运行完全正常
有没有大佬遇到过类似的情况?求指点怎么让std::cout正常输出内容!
内容来源于stack exchange
相关产品推荐
相关产品推荐

