scanf 阻止程序 运行

scanf prevents program from running

所以我用代码运行ner写了这个程序,

#include <stdio.h>

int main()
{
    int num1, num2;

    scanf("%d%d", &num1, &num2);

    if (num1 > num2) 
        printf("The min is:%d\n ", num2);
    else
        printf("The min is:%d\n ", num1);
return 0;   
}

问题是程序不会 运行。它一直显示这个,然后在一段时间后停止:

删除 scanf 解决了这个问题,我试过使用 scanf 的其他程序,没问题。有什么想法吗?

您希望scanf()如何解释例如1231232 作为两个整数?您输入的所有数字很可能是第一个 %d "eaten",然后 scanf() 等待第二个。

您必须在它们之间使用一些分隔符或一些非数字字符:

scanf("%d/%d", &num1, &num2);

这告诉 scanf() 两个数字之间有一个斜线。当然,您也可以只使用空格(格式字符串中没有任何空格,正如评论中指出的那样)。

此外,您应该在依赖数字之前检查 return 值:

if(scanf("%d %d", &num1, &num2) == 2)
{
}