scanf进行输入时出错,返回值被忽略

img


第八行:返回值被忽略: “scanf”。
这是怎么回事,以前也没碰到这种情况

我想问的是,用scanf进行输出,忽略不了,编译不过关,而用scanf_s输出就能运行了,这是为什么

这是VS IntelliSense给的警告,一般来说应该检查scanf()函数的返回值,以判断输入是否成功。

if (scanf("%lf", &lr) != 1) {
    perror("failed to read input");
    return 1;
}

scanf返回正确输入参数的个数。这里不用管,直接忽略。或者禁用C6031

这个就是一个警告而已,不用管的

仅供参考:

#include <stdio.h>
int main()
{
    int a,b,n,v,r,k;
    char buf[80];
    char *p;

    k=0;
    r=EOF;
    while (1) {
        if (EOF==r) {
            fgets(buf,80,stdin);
            p=buf;
        }
        while (1) {
            r=sscanf(p,"%d%n",&v,&n);
            if (1==r) {k++;break;}
            if (EOF==r) break;
            p++;
        }
        if (EOF==r) continue;
        p+=n;
        if (1==k) a=v;
        if (2==k) {
            b=v;
            break;
        }
    }
    printf("%d,%d\n",a,b);
    return 0;
}