代码在C中使用scanf时不会编译或抛出错误,永远陷入困境

问题描述 投票:-1回答:2

我想在前面加上我对编码经验不足的信息。

每当我尝试编译我的代码时,它永远不会完成构建并且永远不会抛出错误。然后我必须使用任务管理器来停止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进行所有这些操作。

您可以提供任何帮助我的信息,如果您想了解更多信息,请告知我们。

c gcc scanf sublimetext3 mingw
2个回答
0
投票

如果你有一个进程stuck.exe,这意味着程序完成编译并由IDE /文本编辑器自动启动。 scanf从标准输入读取,但显然IDE不以交互方式执行它,因此您无法通过IDE输入数字。

在IDE中,您需要使用Compile或Build命令(而不是Run),并在命令shell窗口中手动调用stuck.exe


0
投票

即使我的编译器是GCC-MinGW,我也使用Vscode,即使使用在线编译器,你的程序也能正常工作。也许你的C安装存在问题,或者检查你的系统内存是否接近满,可能会导致这些问题。

© www.soinside.com 2019 - 2024. All rights reserved.