[c语言]怎样判断scanf后面输入的值是否合法?比如要求输入3个整数,你却输入了2个整数和一个字

2025-03-04 12:39:04
推荐回答(2个)
回答1:

1、可以使用EOF来判断输入是否结束。scanf()函数是有返回值的,成功读入的数据个数其返回值,没有数据被读入,返回0,如果发生错误,则返回EOF。scanf()函数是读入函数的之一,还有用于数据文件读入的fscanf()等。fscanf()在遇到文件结束符时返回EOF。
2、例如:while(scanf("%d",&n)!=EOF);

回答2:

通过返回值判断scanf返回值是成功取到的个数,例如:

int main
{
    int a, b, c, n;
    n = scanf ("%d %d %d\n", &a, &b, &c);
    printf("n=%d\n", n);
    return 0;
}

如果输入 1    2   3 则输出3

如果输入 1   2   aaa 则输出2

如果C++可以用try捕捉