ubuntu18.04下Sublime配置C語言編譯環境

Sublime編寫C語言時,存在scanf函數無法輸入的問題,這個問題的解決方案一般是選擇在終端運行程序,但是網上的一些配置有些沒有解決這個問題,有些會存在一些問題。比如程序修改后,終端顯示結果仍為修改前的結果,(猜測是編譯的問題);或者每次顯示完結果之后,并不能自動退出終端。

我想要的效果是:不包含scanf時,在sublime控制臺輸出;包含scanf時,在終端輸出結果,敲回車后自動退出。

下面是配置的json文件:

{
    "cmd": ["g++ ${file} -o ${file_base_name}"], 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
    "shell": true,
    "variants":
    [
        {
            "name": "Run",
            //"cmd": ["${file_path}/${file_base_name}"]
            "shell_cmd": "gcc \"${file}\" -o \"${file_path}/${file_base_name}\" -Wformat=2 && \"${file_path}/${file_base_name}\""
        },
        {
            "name": "RunInShell",
            // "cmd": ["gnome-terminal -- bash -c '${file_path}/${file_base_name};read' "]
            "cmd": ["gnome-terminal -- bash -c \"gcc ${file} -o ${file_path}/${file_base_name} -lm -Wall; ./${file_base_name};read \""]
            // "cmd": ["gnome-terminal -- bash -c \"g++ ${file} -o ${file_base_name} -lm -Wall; ./${file_base_name}; exec bash\""]
        }
    ]
}

無scanf時,選擇Run編譯;含有scanf時,選擇RunInShell編譯。


運行效果圖1
運行效果圖2

修改程序后,再次編譯輸出結果跟隨改變。


運行效果圖3
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容