SublimeText运行C++代码无法输入_调用外部终端解决输入问题

可通过配置外部终端或使用插件解决Sublime Text运行C++程序时无法输入的问题。首先,修改构建系统调用系统终端:Windows下通过cmd执行,macOS使用appleScript启动Terminal.app,Linux调用gnome-terminal等终端模拟器,均能实现标准输入;其次,推荐安装Terminus插件,在编辑器内嵌入完整终端,结合自定义命令实现编译运行一体化,支持实时输入交互,提升开发体验。

SublimeText运行C++代码无法输入_调用外部终端解决输入问题

如果您尝试在Sublime Text中运行C++代码,但程序需要用户输入时无法响应,则可能是由于默认输出面板不支持标准输入。以下是解决此问题的步骤:

一、配置Sublime Text使用外部终端运行C++程序

通过修改Sublime Text的构建系统配置,使其调用系统外部终端(如Windows的cmd或macOS的Terminal),从而支持用户输入操作。

1、打开Sublime Text,点击顶部菜单栏的 Tools → Build System → New Build System…

2、将默认内容替换为以下JSON配置(以Windows为例):

立即学习C++免费学习笔记(深入)”;

{
“cmd”: [“g++”, “${file}”, “-o”, “${file_path}/${file_base_name}”],
“file_regex”: “^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$”,
“working_dir”: “${file_path}”,
“selector”: “source.c, source.cpp”,
“variants”: [
  {
    “name”: “Run”,
    “shell_cmd”: “start cmd /k “cd “${file_path}” && ${file_base_name}.exe && pause””
  }
]
}

3、保存文件为 C++.sublime-build

4、编写C++代码后,先按 Ctrl+B 编译,再按 Ctrl+Shift+B 选择“Run”变体执行程序。

二、macOS系统下调用Terminal.app运行程序

macOS系统需通过AppleScript调用Terminal应用来执行编译后的程序,以实现标准输入功能。

1、新建Build System,使用如下配置:

{
“cmd”: [“g++”, “${file}”, “-o”, “${file_path}/${file_base_name}”],
“working_dir”: “${file_path}”,
“selector”: “source.c, source.cpp”,
“variants”: [
  {
    “name”: “Run”,
    “cmd”: [“osascript”, “-e”, “tell app “Terminal” to do script “cd ‘${file_path}’ && ./’${file_base_name}’ ; echo ‘Press Enter to exit’; read line'””]
  }
]
}

2、保存后使用 Ctrl+Shift+B 选择“Run”运行程序,Terminal窗口将自动弹出并允许输入。

SublimeText运行C++代码无法输入_调用外部终端解决输入问题

ChatDOC

ChatDOC是一款基于chatgpt的文件阅读助手,可以快速从pdf中提取、定位和总结信息

SublimeText运行C++代码无法输入_调用外部终端解决输入问题178

查看详情 SublimeText运行C++代码无法输入_调用外部终端解决输入问题

三、Linux系统下调用GNOME Terminal执行程序

在Linux环境下,可通过调用GNOME Terminal或其他终端模拟器来运行可执行文件。

1、创建新的Build System配置:

{
“cmd”: [“g++”, “${file}”, “-o”, “${file_path}/${file_base_name}”],
“working_dir”: “${file_path}”,
“selector”: “source.c, source.cpp”,
“variants”: [
  {
    “name”: “Run”,
    “cmd”: [“gnome-terminal”, “–“, “sh”, “-c”, “cd ‘${file_path}’ && ./’${file_base_name}’ ; read -p ‘Press Enter to continue…'”]
  }
]
}

2、确保系统已安装 gnome-terminal 或替换为其他终端命令如 xtermkonsole

3、使用构建变体运行程序,新终端窗口将弹出并支持输入交互。

四、使用Terminus插件增强终端体验

Terminus是Sublime Text的一个插件,可在编辑器内部嵌入完整终端,支持输入输出交互。

1、通过Package Control安装 Terminus 插件。

2、创建自定义命令配置,在Packages/User目录下新建 c_run.sublime-commands 文件:

[
  {
    “caption”: “Build and Run C++ (Terminus)”,
    “command”: “terminus_exec”,
    “args”: {
      “cmd”: [“g++”, “${file}”, “-o”, “${file_base_name}”, “&&”, “./${file_base_name}”],
      “shell_cmd”: “g++ ‘${file}’ -o ‘${file_base_name}’ && ‘./${file_base_name}'”,
      “cwd”: “${file_path}”
    }
  }
]
}

3、重启Sublime Text,通过命令面板执行 Build and Run C++ (Terminus),即可在内嵌终端中运行并输入数据。

sublime linux js json windows app mac c++ macos win apple json echo continue windows macos sublime text linux

上一篇
下一篇