C语言 如何检查一个整数类型的值,在它被声明为没有值之后

dgenwo3n  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(120)

假设我创建了一个包含4个int的结构体,然后我扫描所有这4个int。
如何检查用户是否为所有int输入了一个值?
我试过使用NULL,但是我发现它不适用于int类型。那么有没有办法检查它呢?

cbeh67ev

cbeh67ev1#

scanf返回一个值。你应该检查它。如果你用一个有四个转换的格式字符串调用scanf,如果它成功地读取并分配了四个项目,它将返回四个。否则,它将返回一个不同的值。
具体地说,如果在阅读第一个项之前发生了一些失败(包括文件结束),它将返回EOF。否则,它将返回分配的项数。
示例:

#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);
}

来自一条评论:
...但是scanf在其他功能中...
重新构造代码,使调用scanf的函数检查scanf的结果,或记录信息,供程序的其余部分用于确定读取了哪些数字。

相关问题