我想在前面加上我对编码经验不足的信息。
每当我尝试编译我的代码时,它永远不会完成构建并且永远不会抛出错误。然后我必须使用任务管理器来停止stuck.exe(卡住是c文件的名称),以便我可以尝试再次编译。我已经将问题缩小到与scanf函数有关。
#include <stdio.h>
int main(void) {
int number = 0;
printf("this line shouldn't break anything. number = %d\n", number);
printf("what should the new value of number be?: ");
scanf("%d", &number);
return 0;
}
当我删除具有scanf函数的行时,其余代码将按原样编译。
我在Windows 10上的SublimeText3中使用MinGW提供的GCC进行所有这些操作。
您可以提供任何帮助我的信息,如果您想了解更多信息,请告知我们。
如果你有一个进程stuck.exe
,这意味着程序完成编译并由IDE /文本编辑器自动启动。 scanf
从标准输入读取,但显然IDE不以交互方式执行它,因此您无法通过IDE输入数字。
在IDE中,您需要使用Compile或Build命令(而不是Run),并在命令shell窗口中手动调用stuck.exe
。
即使我的编译器是GCC-MinGW,我也使用Vscode,即使使用在线编译器,你的程序也能正常工作。也许你的C安装存在问题,或者检查你的系统内存是否接近满,可能会导致这些问题。