scanf是否有返回值
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
如:
|
1
|
scanf("%d %d",&a,&b); |
函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
例:使用scanf函数输入数据。
|
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>int main(void){ int a,b,c; printf("Give me the value of a,b,c seperated with whitespaces:\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); return 0;} |
&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址 [3] ,是一个右值。变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。
这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。

浙公网安备 33010602011771号