当我们有了变量,我们需要给变量输入值就可以使用scanf函数。
eg:
1 #include <stdio.h>
2 int main()
3 {
4 int score=0;
5 printf("请输入成绩:");
6 scanf("%d\n",score);
7 printf("成绩是:%d\n",score);
8 return 0;
9 }
接下来我们介绍一下scanf函数。
1.基本用法
scanf()函数用于读取用户的键盘输入。
程序运行到这个语句时会停下来,等待用户从键盘输入。
用户输入数据,按下回车后,scanf()函数就会处理用户的输入,将其存入变量。
它的原型定义在头文件stdio.h。
scanf()的语法跟pringtf()类似。
1.scanf("%d\n",&i);
它的第一个参数是格式字符串,;里面会放置占位符(与printf()格式相同),告诉编译器如何解读用户的输入,需要提取的数据是什么类型。
这是因为C语言的数据都是有类型的,scanf()函数必须提前知道用户输入的数据类型,才能处理数据。
它的其余参数就是存放用户输入的变量,格式字符串里面有多少个占位符,就有多少变量。
上面示例中,&i表示,将用户输入的整数存入变量i。
注意:
变量前面必须加上&运算符(指针变量(%p)除外),因为scanf(0传递的不是值,而是地址,即将变量i的地址指向用户输入的值。
如果这里的变量是指针变量(比如字符串变量),那就不用加&运算符。
下面是一次将键盘输入读入多个变量的例子:
1 scanf("%d%d%f%f",&i,&j,&x,%y);
上面实例中,scanf()处理数值占位符时,会自动过滤空白字符,包括空格,制表符,换行符等。
所以,用户输入的数据之间,有一个或多个空格不影响scanf解读数据。另外用户使用回车键,将输入分成几行,也不影响解读,
1 1
2 -20
3 3.4
4 -4.0e3
上面示例中,用户分成四行和一行输入的结果是一样的。