Sublime Text3 C/C++一鍵除錯執行(可讀取cin和scanf且中文無亂碼)
寫在前面:
可以說對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:\CodeBlocks\MinGW\bin複製。
用滑鼠右鍵點選此電腦,選中屬性,然後選擇高階系統設定,再選擇環境變數。
在環境變數中找到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}", "&&", "cmd", "/c", "${file_path}/${file_base_name}"]
},
{
"name": "RunInCommand",
"cmd": ["cmd", "/c", "g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "${file_path}/${file_base_name} & pause"]
}
]
}
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 Text3新增快捷鍵:
如何像Codeblocks一樣按下F9後即可對程式碼進行編譯執行呢?在選單欄選中Preferences,然後再選中Key Bindings。
在新出現的介面中輸入一行內容(我是把F8設定為快捷鍵的):
{ "keys": ["f8"], "command": "build", "args": {"variant": "RunInCommand"} }
輸入完成後按下Ctrl+s儲存即可。