Input 如果没有任何解决办法,Sublime Text 2构建系统是否接受输入?

Input 如果没有任何解决办法,Sublime Text 2构建系统是否接受输入?,input,cygwin,sublimetext2,sublimetext,Input,Cygwin,Sublimetext2,Sublimetext,目标 { "cmd" : ["gcc", "-std=c89", "-pedantic", "-Wall", "$file_name", "-o", "${file_base_name}.exe"], "selector" : "source.c", "path" : "C:/cygwin64/bin/", "shell":true, "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "

目标

{
    "cmd" : ["gcc", "-std=c89", "-pedantic", "-Wall", "$file_name", "-o", "${file_base_name}.exe"],
    "selector" : "source.c",
    "path" : "C:/cygwin64/bin/",
    "shell":true,
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "variants": [
        {
          "cmd": ["start", "cmd", "/k", "${file_base_name}.exe"],
          "name": "Run",
          "shell": true
        }
    ]
}
建立一个Sublime Text 2构建系统,允许编译和运行C程序。我已经痛苦地走到了这一步,但现在我有一些事情我无法弄清楚,所以我有两个主要问题:

1) 我点击ctrl+b(它成功编译),然后点击ctrl+shift+b,脚本运行时不接受任何输入?这正常吗

2) 如果Sublime构建系统不接受输入,则必须有一些变通方法。例如,我按ctrl+b升华文本2编译文件,但当我按ctrl+shift+b时,升华启动cygwin,导航到我的当前目录,然后执行。/filename.c。这可能吗?它说升华文本2会抑制GUI,但是可以通过构建系统使升华打开MATLAB,所以也许我可以用Cygwin做同样的事情

{
    "cmd" : ["gcc", "-std=c89", "-pedantic", "-Wall", "$file_name", "-o", "${file_base_name}.exe"],
    // "cmd" : ["bash ${file_base_name}.exe"],
    "selector" : "source.c",
    "path" : "C:/cygwin64/bin/",
    "shell":true,
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    //"working_dir" : "$file_path"
    "variants": [
        {
          "cmd" : ["${file_base_name}.exe"],
          "name": "Run"
        }
    ]
}
谢谢你的关注

编辑

我试图在可执行文件运行时为其提供输入。例如,我的脚本提示用户使用scanf或getchar()输入数字、字母、字符串等,然后将结果存储在我稍后将使用的变量中。现在,当我在升华文本中按ctrl+shift+B时,它会运行,但会跳过所有输入内容


这就是我当前的构建系统。如果无法使用升华文本2输入,那么我想将其修改为升华启动cygwin,导航到我的当前目录,然后执行./filename.c.

freenode irc上升华文本频道的某个人帮助我并回答了我的问题(在stackoverflow上向他们大声喊叫)。以下是最后的工作脚本:

说明

  • Ctrl+b使用Cygwin编译“C”脚本(带有-std=c89、-pedantic、-Wall标志)
  • 如果有任何错误,您可以直接在Sublime integrated窗口中的代码下面看到它们
  • 按f4键和shift-f4键,在升华文本中浏览它们
  • 如果没有错误,它会在几秒钟内完成
  • Ctrl+shift+b运行脚本,它在新窗口中打开命令提示符并在那里运行脚本,您可以输入(耶!)
代码

{
    "cmd" : ["gcc", "-std=c89", "-pedantic", "-Wall", "$file_name", "-o", "${file_base_name}.exe"],
    "selector" : "source.c",
    "path" : "C:/cygwin64/bin/",
    "shell":true,
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "variants": [
        {
          "cmd": ["start", "cmd", "/k", "${file_base_name}.exe"],
          "name": "Run",
          "shell": true
        }
    ]
}
未来

{
    "cmd" : ["gcc", "-std=c89", "-pedantic", "-Wall", "$file_name", "-o", "${file_base_name}.exe"],
    "selector" : "source.c",
    "path" : "C:/cygwin64/bin/",
    "shell":true,
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "variants": [
        {
          "cmd": ["start", "cmd", "/k", "${file_base_name}.exe"],
          "name": "Run",
          "shell": true
        }
    ]
}
希望谷歌能在这里引领人们,因为Sublime Text 2文档非常糟糕,我不希望其他任何人在这个简单但耗时的问题上挣扎


标签:Sublime Text 2、gcc、cygwin、build、c、input、Windows

你到底在问什么?您是否试图在可执行文件运行时为其提供输入?或者,您是否试图在构建系统运行/编译时与它进行动态通信?你想对你的第二个问题做什么?是否要在Cygwin下运行
${file\u base\u name}.exe
?尽管有这些文档,也可以在Windows下启动GUI,您只需调整构建系统即可。请您的问题准确描述您正在尝试做什么,以及您当前的问题是什么阻止了您这么做。如果您正在运行
cmd
(即Windows'
cmd.exe
),Cygwin是如何打开的?@MattDMo噢,很好。是的,它只使用Cygwin编译,使用命令提示符运行。