函数原型:
int scanf(constchar*format,...);
该函数定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,并且与格式说明的次序一致。
返回值:
scanf()函数返回成功,则返回赋值的数据个数;读到文件末尾或者出错时,则返回EOF,且返回值为int型.
例如:scanf
(
"%d%d"
,&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
下面引入需要讨论的问题,我们在使用getchar函数时经常遇到的:
//--------------------------------------------------------
int ch;
ch = getchar();
//--------------------------------------------------------
为什么ch被声明为整型,而我们事实上需要它来读取字符?
答案是,还记得上面getchar出错时的返回值EDF吗,因为EOF是一个整型值,它的位数比字符类型要多,把ch声明为整型时,可以防止从输入设备读取的字符出错时被解释为EOF,这也意味着接受字符的ch必须足够大,足以容纳EOF,这就是ch使用整型值的原因。字符只是“小整数”而已,所以用一个整型变量容纳字符值并不会引起任何问题。