我正在通过一门教程同时学习一门通用编程课程。课程设置建议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();
}
答案 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程序。