我想问的是,用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;
}