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

时间:2014-09-10 19:49:38

标签: c scite

我正在通过一门教程同时学习一门通用编程课程。课程设置建议Windows用户使用SciTE,所以我做到了。可能是因为我有Windows 8,我不得不编辑SciTE cpp.properties文件以运行示例程序。这是属性文件的make / go部分:

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();
}

1 个答案:

答案 0 :(得分:0)

SciTE的输出窗格不是您所期望的常规控制台 - 您无法在SciTE的输出窗格中询问用户输入。

但是,您可以使用parameters并略微更改脚本以接受参数而不是用户输入。

另一个选项是对go命令使用其他默认值subsystem

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或“工具&gt;停止执行”菜单命令终止正在运行的SciTE程序。