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()
如何解释例如123
或 1232
作为两个整数?您输入的所有数字很可能是第一个 %d
"eaten",然后 scanf()
等待第二个。
您必须在它们之间使用一些分隔符或一些非数字字符:
scanf("%d/%d", &num1, &num2);
这告诉 scanf()
两个数字之间有一个斜线。当然,您也可以只使用空格(格式字符串中没有任何空格,正如评论中指出的那样)。
此外,您应该在依赖数字之前检查 return 值:
if(scanf("%d %d", &num1, &num2) == 2)
{
}
所以我用代码运行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()
如何解释例如123
或 1232
作为两个整数?您输入的所有数字很可能是第一个 %d
"eaten",然后 scanf()
等待第二个。
您必须在它们之间使用一些分隔符或一些非数字字符:
scanf("%d/%d", &num1, &num2);
这告诉 scanf()
两个数字之间有一个斜线。当然,您也可以只使用空格(格式字符串中没有任何空格,正如评论中指出的那样)。
此外,您应该在依赖数字之前检查 return 值:
if(scanf("%d %d", &num1, &num2) == 2)
{
}