scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
1
|
scanf
(
"%d,%d"
, &a, &b);
|
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
例:使用scanf函数输入数据。
1
2
3
4
5
6
7
8
9
10
|
#include<stdio.h>
int
main()
{
int
a,b,c;
printf
(
"输入 a, b, c\n"
);
scanf
(
"%d,%d,%d"
, &a, &b, &c);
printf
(
"a = %d b = %d c = %d\n"
, a, b, c);
fflush
(stdin);
return
0;
}
|
注意上面的scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之间有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格,tab键或回车键将各个数据隔开
&a,&b,&c中的&是地址运算符,&a指a在内存中的地址。scanf的作用是:按照a,b,c的内存地址将a,b,c的值存进去。变量a,b,c的地址是在编译连续阶段分配的。
这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据是,数据之间不可以加逗号,只能是空格或tab键或者回车键——“2 3 4”/“2(按tab)3(按tab)4(按tab)”。若是“%d,%d,%d”,则在输入数据时需要加“,”——“2,3,4”.