Sublime Text3 C/C++一键调试运行(可读取cin和scanf且中文无乱码)

  • 2019 年 11 月 8 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/85146975

写在前面:

可以说对Sublime Text3是真爱了,我最爱的代码编辑器,没有之一。CSDN上不少前辈都写过如何在Sublime Text3中编译调试运行代码,根据他们的博客,我成功设置好了Python在Sublime Text下的编译运行,但是C/C++的我找到了十多篇博客才设置成功(因为我发现里面就两篇博客真正实用)。所以我想总结一下,自己写一篇关于在Sublime Text3中编译运行C/C++的博客。

参考博客:

怎么让sublime text3可以运行c/c++ (来源:constantine___)。

我发现我按①设置好了后,不能读取cin和scanf的输入。

sublime text 3+minGW 无法读取cin,使用命令行cmd成功运行(来源作者:食野之苹)。

我发现我按②设置好了后,程序出现了中文乱码。

Sublime Text的特点:

①Sublime Text 是一款跨平台代码编辑器,在Linux、OS X和Windows下均可使用。

②Sublime Text占用内存小、运行速度快,界面还十分简洁美观。

③Sublime Text可以多行编辑、多重选择、多屏显示,提高编程效率。

④Sublime Text 是可自由扩展的,它包含大量实用插件,我们可以通过安装自己领域的插件来成倍提高工作效率。

minGW的系统环境配置:

使用的C/C++编译器是minGW,点此进入官网链接,下载后需要在线安装,安装后需要将安装目录下的bin目录所在路径加入path环境变量。本菜鸡的电脑里安装了CodeBlocks,在CodeBlocks的安装目录下有MinGW,所以可以直接将其bin目录所在路径D:CodeBlocksMinGWbin复制。

用鼠标右键点击此电脑,选中属性,然后选择高级系统设置,再选择环境变量。

在环境变量中找到Path系统变量,选中后点击编辑。

选择新建,然后Ctrl+v把复制的MinGW的bin路径粘贴,再一直点确定就行了。

用Win+R来运行cmd,输入g++或g++ -v,出现以下界面说明MinGW配置成功。

在Sublime Text3内部编译运行代码:

编辑一段代码输出经典语句"Hello,world."和“你好,世界。” Ctrl+Shift+b选中C++ Single File -Run即可在ST3内部对这段代码进行编译运行。程序运行结束后显示[Finished in 时间]。

如果代码有bug的话,Sublime Text3也可以进行报错。

这一切看上去都非常让人激动。然而!问题来了,用以上方法并不能读取cin和scanf。要是在"请输入一个数:"后输入一个数字,Sublime Text3不会有任何反应,并且在你重新Ctrl+b编译运行的时候会报错,因为该代码已经在编译运行了。

Sublime Text3调用cmd编译运行:

如何解决Sublime Text3无法cin、scanf的问题呢?

在菜单栏选中Tools,然后选择Build System,再选择New Build System…,在新打开的文件中添加以下内容:

{      "cmd": ["g++", "${file}", "-fexec-charset=gbk", "-o", "${file_path}/${file_base_name}"],      "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",      "working_dir": "${file_path}",      "selector": "source.c, source.c++",      "variants":      [          {              "name": "Run",              "cmd": ["cmd", "/c", "g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "${file_path}/${file_base_name} & pause"]          }      ]  }

———————————————2019.08.13更新————————————————————

Linux环境下要这样配置

{      "cmd" : ["g++", "$file_name", "-o", "${file_base_name}", "-lm", "-Wall"],      "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",      "selector" : "source.c, source.c++",      "shell":false,      "working_dir" : "$file_path",        "variants":      [          {              "name": "Run",              "cmd": ["gnome-terminal", "-e", "bash -c "g++ '${file}' -o '${file_path}/${file_base_name}' -lm -Wall && '${file_path}/${file_base_name}' ; read -p 'nPress any key to continue...'""]          }      ]  }

——————————————————————————————————————————

Ctrl+s保存在这个默认路径下,重命名为C.sublime-build。

然后返回刚刚那段代码,Ctrl+Shift+b选择C -Run,编译后可以调用cmd运行,界面如下:

震惊!!为啥会出现中文乱码呢?我就奇了个怪啦。

不要慌!问题不大!设置文件编码为GBK格式后再输入文字,程序运行时中文就不再是乱码了。Ctrl+Shift+p打开命令框,输入"install",选中第一个敲回车。

你会发现命令框消失了,过一会儿会出现一个新的命令框,在新的命令框中输入"ConvertToUTF8"敲下回车即可进行安装。

安装ConvertToUTF8成功后在菜单栏选中File,然后选中Reload encoding with,选择Chinese Simplified(GBK)。然后重新Ctrl+b调试运行,噔噔噔噔!

如果没有在Sublime Text中安装Package Control的话,这里有个安装方法:

通过https://sublime.wbond.net/Package%20Control.sublime-package来下载packageControl文件。下载完成后,打开sublime text3,选择菜单Preferences->Browse Packages, 打开安装目录,此时会进入到一个叫做Packages的目录下,点击进入上一层目录Sublime Text3,在此目录下有一个文件夹叫做Installed Packages,把刚才下载的文件放到这里就可以了。然后重启sublime text3,观察Preferences菜单最下边是否有Package Settings 和Package Control两个选项,如果有,则代表安装成功了。此时使用快捷键Ctrl+Shift+P,输入install,选择install package,接下来从里面搜索插件的名字即可。

Sublime Text3添加快捷键:

如何像Codeblocks一样按下F8后即可对代码进行编译运行呢?在菜单栏选中Preferences,然后再选中Key Bindings。

在新出现的界面中输入一行内容(我是把F8设置为快捷键的):

{ "keys": ["f8"], "command": "build", "args": {"variant": "Run"} }

输入完成后按下Ctrl+s保存即可。

对了,还没有破解呢(原谅我的贫穷,希望有能力的兄弟还是购买正版),破解请戳链接sublime text3 破解方法,亲测有效

打开sublime text ,选择help–>enter license,将下面的内容复制到输入框中:

----- BEGIN LICENSE -----  sgbteam  Single User License  EA7E-1153259  8891CBB9 F1513E4F 1A3405C1 A865D53F  115F202E 7B91AB2D 0D2A40ED 352B269B  76E84F0B CD69BFC7 59F2DFEF E267328F  215652A3 E88F9D8F 4C38E3BA 5B2DAAE4  969624E7 DC9CD4D5 717FB40C 1B9738CF  20B3C4F1 E917B5B3 87C38D9C ACCE7DD8  5F7EF854 86B9743C FADC04AA FB0DA5C0  F913BE58 42FEA319 F954EFDD AE881E0B  ------ END LICENSE ------

大功告成!尽情显示使用Sublime Text3编辑代码的快乐吧!