为什么Sublime Text无法运行我的C++程序?是否是编译器问题?
Sublime Text运行C++代码无输出解决方案
该问题属于Sublime Text默认C++构建系统的常见异常,主要由两个原因引发:
- 标准输出缓冲区未强制刷新:你代码中的
cout << "Hello World!";未追加换行符或手动调用刷新逻辑,程序运行结束后输出内容仍滞留在缓冲区,没有输出到Sublime的控制台面板。 - Sublime Text默认C++构建系统配置存在缺陷,部分版本未正确关联运行时的输出捕获逻辑。
可根据实际情况选择以下任意方案解决:
- 方案1:修改代码强制刷新缓冲区
将输出语句调整为以下任意形式即可正常输出:// 追加endl换行符,会自动触发缓冲区刷新 cout << "Hello World!" << endl; // 或手动调用flush方法刷新缓冲区 cout << "Hello World!" << flush; - 方案2:自定义C++构建系统
无需修改代码的前提下,可通过配置专属构建系统解决:- 打开Sublime Text,依次点击顶部菜单栏「工具」->「构建系统」->「新建构建系统」
- 替换默认生成的配置内容为以下代码:
{ "encoding": "utf-8", "working_dir": "$file_path", "shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "selector": "source.c++", "variants": [ { "name": "Run", "shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && cmd /c \"${file_path}/${file_base_name} & pause\"" } ] }- 将配置文件保存为
C++_Custom.sublime-build,后续编写C++代码时,在「构建系统」中选中该配置,按下Ctrl+Shift+B选择带Run后缀的选项执行,即可正常显示程序输出。
- 方案3:检查MinGW环境配置
确认MinGW的bin目录已添加到系统环境变量Path中,打开CMD执行g++ -v能正常返回版本信息,排除编译环节失败未生成可执行文件的可能性。
内容的提问来源于stack exchange,提问作者Benjamin
相关产品推荐
相关产品推荐

