介绍:
C函数库包含了多个输入函数,scanf()是其中最常用的一个,因为它可以读取各种格式的数据。它是在stdio.h中声明的一个函数,因此使用前必须加入#include。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并将输入的数据赋值给对应的变量。
原型:
int scanf( const char *format, ... );
用法示例:
这里从键盘接收一个数存入变量num中。当接收多个数时,可以这样用:
scanf()函数使用空格(空格、换行和制表符)来决定怎样将输入分成几个字段。它依次把转换说明与字段相匹配,并跳过他们之间的空格。唯一例外的是%c,即使下一个字符是空白字符,它也会读取那个字符。我们很快会再讨论这个主题。
scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:
控制字符
说明
%c
一个单一的字符
%d
一个十进制整数
%i
一个整数
%e, %f, %g
一个浮点数
%o
一个八进制数
%s
一个字符串
%x
一个十六进制数
%p
一个指针
%n
一个等于读取字符数量的整数
%u
一个无符号整数
%[]
一个字符集
%%
一个精度符号
注意,scanf()函数允许您把普通字符放在格式字符串中。除了空格字符之外的扑通字符一定要与输入字符串准确匹配。例如,如果将逗号放在两个说明符之间:
如果不按格式输入:
除了%c以外的说明符会自动跳过输入项之前的空格,所以scanf("%d%d",&num,&num1)和scanf("%d %d",&num,&num1)的行为是相同的、对于%c来说,向格式字符串中添加一个空格将导致一些区别。比如scanf("%c",&ch)和scanf(" %c",&ch)之间