1. 程式人生 > >Sublime Text3 C/C++一鍵除錯執行(可讀取cin和scanf且中文無亂碼)

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儲存即可。 

 大功告成!盡情顯示使用Sublime Text3編輯程式碼的快樂吧!