从SciTE运行时控制台程序无法正确执行

问题描述:

我正在通过一门普通的编程课程同时学习C语言。课程设置建议Windows用户使用SciTE,所以我做了。可能因为我有Windows 8,我必须编辑SciTE cpp.properties文件才能运行示例程序。这是属性文件的make/go部分的样子:从SciTE运行时控制台程序无法正确执行

ccopts=-pedantic -Os 
cc=g++ $(FileNameExt) -o $(FileName).exe 
ccc=gcc $(FileNameExt) -o $(FileName).exe 

make.command=make 
command.compile.*.c=$(ccc) -std=c99 
command.build.*.c=$(make.command) 
command.build.*.h=$(make.command) 
command.clean.*.c=$(make.command) clean 
command.clean.*.h=$(make.command) clean 
command.go.*.c=$(FileName) 

我的问题是我无法让这个程序在SciTE中执行。它在PowerShell/cmd中工作正常,但如果我尝试在SciTE中执行它,我不会得到第一个打印输出,并且提供输入什么也不做。即使我停止执行,它也永远不会结束。我必须进入任务管理器并结束程序。我之前遇到过这个问题,但那是因为我打错了。我不知道我在这里拼写错误:

#include <stdio.h> 
#include <conio.h> 

int main(void) 
{ 
    int num1; 
    int num2; 
    printf("Enter 2 numbers\n"); 
    scanf("%d%d", &num1, &num2); 

    if(num1 == num2) { 
     printf("they are equal\n"); 
    } 

    if(num1 < num2) { 
     printf("%d is less than %d\n", num1, num2); 
     } 

    if(num1 > num2) { 
     printf("%d is greater than %d\n", num1, num2); 
     } 

    getch(); 
} 

赛特的输出窗口是不是正规的控制台你所期望的 - 你不能在赛特的输出窗口要求用户输入。

但是,你也许可以利用parameters并稍微改变你的脚本接受参数,而不是用户输入。

另一种选择是使用其他则默认为subsystem go命令:

command.compile.*.c=gcc $(FileNameExt) -o $(FileName).exe 
command.go.*.c="$(FileDir)\$(FileName).exe" 
command.go.subsystem.*.c=2 

你可以,如果你想尝试它在你cpp.properties末粘贴此块。甚至更多,如果你想的是在飞行和执行编译一个Go命令,添加此行上面块:

command.go.needs.*.c=gcc $(FileNameExt) -o $(FileName).exe 

附注:您可以随时终止正在运行的赛特计划与Ctrl+Break或“工具>停止执行“菜单命令。