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

本文档详细介绍了如何在Windows、MacOS和Linux系统下,配置SublimeText编辑器以正确运行包含scanf或cin的C/C++程序。通过创建新的编译系统设置,使得用户可以在SublimeText内部正常进行命令行输入。
摘要由CSDN通过智能技术生成


项目场景

最近把电脑上的 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 便可以正常出结果了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z.Q.Feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值