Sublime Text编译运行C语言程序出现无法输入解决办法(WindowsLinuxMacOS均适用)

Posted Z.Q.Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sublime Text编译运行C语言程序出现无法输入解决办法(WindowsLinuxMacOS均适用)相关的知识,希望对你有一定的参考价值。


项目场景

最近把电脑上的 SublimeText 编辑器更新到最新版了,在编译处理C或C++语言程序时,发现只要是包含 scanfcin 等需要我们手动输入的程序,编译是没问题的,但是在 SublimeText 里运行会出现无法从命令行输入的情况,在外部运行可执行程序是没问题的。


解决方案

自己重新创建一个C的编译器:打开SublimeText → Tools → Build System → New Build System

考虑到篇幅问题C++的我放在另一篇博客了Sublime Text编译运行C++语言程序出现无法输入解决办法(Windows、Linux、MacOS均适用)

Windows系统

Windows系统写入如下内容到文件内:


    "windows": 
        "cmd": ["gcc", "-std=c11", "$file", "-o", "$file_base_name.exe"],
    ,
    "cmd": ["gcc", "-std=c11", "$file", "-o", "$file_base_name"],
    "file_regex": "^(.*)\\\\(([0-9]+),([0-9]+)\\\\) (Error|Fatal): (.*)$",
    "working_dir": "$file_path",
    "selector": "source.c",
    "variants": [
    
        "name": "Run",
        "shell": true,
        "windows": 
            "shell_cmd" : "start cmd /c \\"\\"$file_base_name.exe\\" & echo. & pause\\""
        
    ,
    
        "name": "Build and Run",
        "shell": true,
        "windows": 
            "shell_cmd": "gcc -std=c11 \\"$file\\" -o \\"$file_base_name.exe\\" && start cmd /c \\"\\"$file_base_name.exe\\" & echo. & pause\\""
        ,
    
    ]

MacOS系统

MacOS系统写入如下内容:


    "cmd": ["gcc", "-std=c11", "$file", "-o", "$file_base_name"],
    "file_regex": "^(.*)\\\\(([0-9]+),([0-9]+)\\\\) (Error|Fatal): (.*)$",
    "working_dir": "$file_path",
    "selector": "source.c",
    "osx": 
        "path": "/usr/local/bin:/usr/bin:/bin:$path",
        "cmd": ["clang", "-std=c11", "$file", "-o", "$file_base_name"],
    ,
    "variants": [
    
        "name": "Run",
        "shell": true,
        "osx": 
            "shell_cmd": "echo 'cd \\"$file_path/\\"' > '/tmp/$file_base_name' && echo './\\"$file_base_name\\"' >> '/tmp/$file_base_name' && echo read >> '/tmp/$file_base_name' && chmod +x '/tmp/$file_base_name' && open -a Terminal.app '/tmp/$file_base_name'"
        ,
    ,
    
        "name": "Build and Run",
        "shell": true,
        "osx": 
            "shell_cmd": "clang -std=c11 '$file' -o '$file_base_name' && echo 'cd \\"$file_path/\\"' > '/tmp/$file_base_name' && echo './\\"$file_base_name\\"' >> '/tmp/$file_base_name' && echo read >> '/tmp/$file_base_name' && chmod +x '/tmp/$file_base_name' && open -a Terminal.app '/tmp/$file_base_name'"
        ,
    
    ]

Linux系统

Linux系统写入如下内容:


    "cmd": ["gcc", "-std=c11", "$file", "-o", "$file_base_name"],
    "file_regex": "^(.*)\\\\(([0-9]+),([0-9]+)\\\\) (Error|Fatal): (.*)$",
    "working_dir": "$file_path",
    "selector": "source.c",
    "variants": [
    
        "name": "Run",
        "shell": true,
        "linux": 
            "cmd": ["gnome-terminal -- bash -c \\"\\\\\\"./$file_base_name\\\\\\";echo;read line;exit; exec bash\\""]
        ,
    ,
    
        "name": "Build and Run",
        "shell": true,
        "linux": 
            "cmd": ["gcc -std=c11 \\"$file\\" -o \\"$file_base_name\\" && gnome-terminal -- bash -c \\"\\\\\\"./$file_base_name\\\\\\";echo;read line;exit; exec bash\\""]
        ,
    
    ]

保存文件到其给定位置(不要自己变更位置),命名为 MyCBuild.sublime-build


运行测试

接着我们在编译前,Tools → Build System → 勾选MyCBuild,使用 Ctrl+B 选择 Build and Run 便可以正常出结果了。

以上是关于Sublime Text编译运行C语言程序出现无法输入解决办法(WindowsLinuxMacOS均适用)的主要内容,如果未能解决你的问题,请参考以下文章

Sublime Text编译运行C++语言程序出现无法输入解决办法(WindowsLinuxMacOS均适用)

Sublime Text编译运行C++语言程序出现无法输入解决办法(WindowsLinuxMacOS均适用)

Sublime Text 3配置C/C++编译运行环境

如何在 Sublime Text 2 中编译和运行 C 程序?

如何使用 Sublime Text 2 编译和运行一个简单的 C 程序?

sublime text 2编译运行C语言