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”.