Visual Studio 2019 x64 Native Tools Command Prompt下std::cout无控制台输出
VS2019 x64原生工具命令行C++程序std::cout无控制台输出解决方案
- 1 检查编译时子系统配置
这是最常见的诱因,如果你编译时指定了Windows子系统,程序会默认不关联控制台输出:- 项目属性修改路径:项目→属性→链接器→系统→子系统,选择
控制台 (/SUBSYSTEM:CONSOLE) - 命令行编译时直接加参数:
cl your_code.cpp /link /SUBSYSTEM:CONSOLE - 也可以直接在代码开头添加编译指令,无需修改配置:
#pragma comment(linker, "/subsystem:console /entry:mainCRTStartup")
- 项目属性修改路径:项目→属性→链接器→系统→子系统,选择
- 2 重置标准输出同步配置
部分场景下C++标准流和C标准输出的同步被关闭会导致输出缓冲异常,即使调用std::endl也无法刷出到控制台,在main函数开头添加如下代码即可:std::cout.sync_with_stdio(true); - 3 检查并清理异常环境变量
如果你手动设置过STDOUT相关的环境变量会导致标准输出被默认重定向,在命令行执行以下命令清除变量:set STDOUT= - 4 适配控制台编码
如果程序输出编码和控制台编码不匹配可能出现输出不可见的情况,运行程序前先执行命令切换控制台编码为UTF-8:chcp 65001
内容的提问来源于stack exchange,提问作者didjek
相关产品推荐
相关产品推荐

