#include <stdio.h>
int main(void)
{
int a, b, c, d;
int result = scanf("%d%d%d%d", &a, &b, &c, &d);
if (result == 4)
printf("All four numbers were read.\n");
else if (result == EOF)
printf("End of file or an input error occurred before any items were read.\n");
else
printf("%d items were read.\n", result);
}
1条答案
按热度按时间cbeh67ev1#
scanf
返回一个值。你应该检查它。如果你用一个有四个转换的格式字符串调用scanf
,如果它成功地读取并分配了四个项目,它将返回四个。否则,它将返回一个不同的值。具体地说,如果在阅读第一个项之前发生了一些失败(包括文件结束),它将返回
EOF
。否则,它将返回分配的项数。示例:
来自一条评论:
...但是
scanf
在其他功能中...重新构造代码,使调用
scanf
的函数检查scanf
的结果,或记录信息,供程序的其余部分用于确定读取了哪些数字。