回顾:通过我前面讲解的库函数printf()的用法,我们知道printf是输出函数。
接下来我讲解一下C语言输入函数scanf()的用法。
(1)基本用法:
scanf()函数用于读取用户的键盘输入。程序运行到scanf()这个语句时,程序会停下来,等待用户从键盘输入数据。当用户输入数据后,按下回车键后,scanf()就会处理用户的输入,将数据存入变量。
注意:scanf()也是库函数,使用scanf()函数时,要包含头文件stdio.h
scanf()的用法与printf()相似。
scanf()格式是:
scanf("%d",&j);
它的第一个参数是一个格式字符串(格式字符串即:双引号里面的内容),里面放置占位符(与printf()的占位符基本一致),告诉编译器如何解读用户的输入,需要提取的数据是什么类型。scanf()必须提前知道用户输入的数据类型,才能处理数据。
它的其余参数就是存放用户输入的变量,格式字符串里面有多少个占位符,就有多少个变量。
注意:变量前面必须加上&运算符(指针变量除外),因为scanf()传递的不是值,而是地址,即将变量j的地址指向用户输入的数据。
下面是一次从键盘输入多个变量的例子。
这个例子:格式字符串是:%d%d%lf%lf,即用户输入的前两个数据是整数,后两个数据是浮点数,当我们输入:10 200 12.5 18.6时,这四个值会一次放入变量,a,b,c,d中。
注意:scanf()处理数值占位符时,会自动过滤空白字符,包括空格,制表符,换行符等(这个用法非常重要,一定要掌握)
所以用户输入的数据之间,有一个或多个空格不影响scanf()解读数据,另外,用户使用回车键,将输入的数据分成几行输入,也不影响解读。
比如;
从上面两个代码可以看出,把数据分成多行输入,与一行输入,结果都是一样的。scanf()处理数值占位符时,会自动过滤空白字符,包括空格,制表符,换行符等(这个用法非常重要,一定要掌握)