Linux+Sublime 开发C/C++ 中无法读取cin/scanf 的解决办法

Q:sublime在Ubuntu环境下配置好,能使用gcc编译运行程序后,发现cin,scanf 这样的命令不执行

A:sublime自带的控制台不支持这样的输入操作,解决办法就是调用Linux本地终端,在终端上执行程序,

   网上关于windows下调用cmd的例子已经好多了,可是却很少找到Linux环境下的配置方法,

以下是我自己总结的方法,自己感觉很好用,希望可以帮到需要的朋友。

1.Sublime界面-->Tools-->Build System-->New Build System,弹出一个简单的文件,把以下代码粘贴进去,

  最后结果如下所示:

{
    "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}"]
        },
        {
            "name": "RunInShell",
            "cmd": ["gnome-terminal -x bash -c ‘${file_path}/${file_base_name};read‘ "]
        }
    ]
}

2.保存为g++.sublime-build,保存位置就是默认路径,即Packages-->User 目录下

3.第三步,设置快捷键,Sublime界面-->Preferences-->Key Bindings-User, 打开后写入以下代码,结果如下所示

[
    { "keys": ["f8"], "command": "build","args": {"variant": "RunInShell"} },
]

  保存。

4.这样就完成调用Linux下的终端了,Sublime写好C/C++程序后,

  ctrl+B编译程序,ctrl+shift+B使用Sublime自带的控制台运行程序,F8为调用Ubuntu终端运行程序。

  关键之处就在于一点,也是我废了点力气测试出来的,

"cmd": ["gnome-terminal -x bash -c ‘${file_path}/${file_base_name};read‘ "],

  这条代码就是调用gnome-terminal来执行程序,后面的;read 必须要加,否则程序执行完终端会闪退,加上以后程序执行完,敲回车关闭终端。

时间: 2024-11-01 21:16:14

Linux+Sublime 开发C/C++ 中无法读取cin/scanf 的解决办法的相关文章

Linux系统在启动过程中启动级别发生错误的解决办法

一.系统启动级别一共有六个: 0:系统停机模式,系统不可以正常启动 1:单用户模式, root权限,用于系统的维护,禁止远程登陆 2:多用户模式,没有NFS网络支持 3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式 4:系统未使用,作为保留一般不用 5:图形化模式,登陆后进入GUI模式 6:重启模式,默认级别不能为6,否则不能正常启动 示例:若我们设置默认模式为poweroff.target,则在开机的时候会出现启动关机死循环状态 使用reboot命令后,会出现如下情况:(停在该位

Linux内核,文件系统移植过程中出现的一些问题与解决办法

1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行.因此此时的entry point必须设置为load address + 0x40.如果kernel boot过程没有到uncompressing the kernel,就可能是这里设置不对. boom address == load address == entry point - 0x40 2.

windows及linux下安装django simple captcha 遇到的各种问题及解决办法

转载自http://www.cnblogs.com/descusr/p/3225874.html 所有程序写完之后,验证码图片不显示,点击图片地址会提示如下错误,并且在linux下的纠正办法 用pil产生验证码出现:ImportError: The _imagingft C module is not installed 这个是由于PIL没有编译freetype导致的 查看 lib/python2.7/site-packages/PIL/ 看看 _imagingft.so 是否存在(至关重要,因

20170514002Oracle 11g R2安装过程中遇到的报错及解决办法

Oracle 11g R2安装过程中遇到的报错及解决办法 1.提示Check if the DISPLAYvariable is set.    Failed<<<< 解决方案: #xhost +  //切换到root用户输入 #su – Oracle  //切换到oracle用户 $./runInstaller  //执行安装程序 xhost 是用来控制X server访问权限的. 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA

pureftp 读取目录列表失败解决办法

最近在使用pureftp的时候遇到了文件目录无法读取或者读取很慢的问题,同时服务器上配置了iptables防火墙规则,问题主要由此引起. 解决方法如下: 1.首先查看是否开启了20.21端口,如果没有请开启. 2.停止iptables:service iptables stop,再次连接,可以成功读取列表. 3.修改iptables-config配置文件: 打开:vim /etc/sysconfig/iptables-config 将IPTABLES_MODULES修改为:IPTABLES_MO

IIS中预览错误问题的解决办法(HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射 )

控制面板 程序 打开或关闭windows程序 Internet信息服务 万维网服务 应用程序开发功能 勾选.net  扩展性    ASP    ASP.net 按照这个顺序就可以解决该问题. IIS中预览错误问题的解决办法(HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射 ),布布扣,bubuko.com

在项目中导入import javax.servlet 出错解决办法

我们有时会把别人的项目copy到自己这里进行二次开发或者参考学习,有的时候会发生下图的错误,即eclipse项目里我们导入的项目里提示HttpServletRequest 不能引用,会伴随头疼的小红叉出现 具体原因是我们工程里面web-inf/lib目录下少了相应的包:Package javax.servlet.http引起的:通俗且确切的讲就是缺少TOMCAT_HOME\lib下的servlet-api.jar.在别人的机器上他配置了Server,一般都是tomcat,而在拷贝的过程中Serv

IntelliJ IDEA中Maven插件无法更新索引之解决办法

IT草根 WangXu's 代码馆 BLOG Home Archives Resume Links About IntelliJ IDEA中Maven插件无法更新索引之解决办法 By Wang Xu 发表于 2015-12-09 文章目录 1. Maven的仓库.索引 2. IntelliJ IDEA利用索引实现自动补全 3. IntelliJ IDEA中Maven插件配置 4. IntelliJ14.1更新索引失败原因 5. 使用国内Maven仓库的镜像 6. 下载Maven仓库的索引 7. 

mysql中“Table ‘’ is read only”的解决办法

之前是在linux下面直接Copy的data下面整个数据库文件夹,在phpMyAdmin里面重新赋予新用户相应权限后,drupal成功连接上数据库.但出现N多行错误提示,都是跟Cache相关的表是‘Read only‘,而且phpMyAdmin里面优化表也是提示”Table ‘xxx’ is read only“. 我怀疑是文件权限的问题,所以将该数据库文件夹下面所有表文件chmod成777,chown成”_mysql”,但这次问题更严重,drupal里面现实table crached.没办法,