You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sublime Text 3在Windows 10下运行C++程序输出异常(显示十六进制字符)求助

搞定Sublime Text 3中C++输出文件变十六进制的问题

嘿,我一眼就看出来问题出在哪了——你看到的那些奇怪十六进制字符其实是正常输出的ASCII码十六进制表示!比如30就是字符0,0d0a是Windows系统里的换行符\r\n,说白了你的程序根本没写错,只是输出文件的打开方式或者文件名搞了个小乌龙。

两步解决问题

1. 调整编译配置(可选但推荐)

把你当前的编译配置里的输出文件名从outputf.in改成outputf.txt,同时给重定向符号前后加个空格(让Windows Shell解析更顺畅),修改后的配置如下:

{ 
    "cmd": ["g++.exe","-std=c++17", "${file}", "-o", "${file_base_name}.exe", "&&" , "${file_base_name}.exe < inputf.in > outputf.txt"], 
    "shell":true, 
    "working_dir":"$file_path", 
    "selector":"source.cpp" 
}

改文件名的原因是.in后缀可能被你的系统关联到了十六进制编辑器,改成.txt会让系统默认用记事本这类文本工具打开,直接看到正常输出。

2. 检查输出文件的打开方式

如果不想改文件名,那右键点击outputf.in,选择打开方式,手动指定用记事本、Notepad++或者其他文本编辑器打开,别用十六进制查看工具(比如HxD)就行。这样打开后就能看到0到9的正常输出了。

为啥会发生这事?

你的C++代码逻辑完全没问题,循环输出0到9加换行,对应的ASCII码转成十六进制就是你看到的那串字符。问题出在文件的显示环节:要么是.in后缀被系统默认用十六进制工具打开,要么是你之前不小心把这个后缀的文件关联改了。

内容的提问来源于stack exchange,提问作者Reckon Mazumdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 17:59:07