scanf函数是用来读取键盘输入的。胖头老师先让糖糖动手运行以下程序。
糖糖运行程序后,通过键盘输入了数字“10”,然后按Enter键。随后,程序在屏幕上输出了这个数字“10”。这说明变量a的值变成了10。
胖头老师解释道:“scanf的使用方法跟printf很像,一个格式符匹配一个输入值。这里格式符‘%d’与变量a对应。按Enter键代表输入结束。”
“变量a前面的符号是什么意思?”糖糖问。
胖头老师说:“‘&’是取地址运算符,‘&a’的结果是变量a的地址。scanf存放输入变量a所在的地址。这个知识点在后面还会展开讲解,你们暂时只要知道这个简单的用法就可以了。”
糖糖说:“scanf的作用有点像快递员,根据地址派发快递。”
胖头老师说:“是的,可以这样理解。scanf还可以一次输入多个值。例如,下面的代码就输入了3个变量的值。”
运行结果如下。
“↵”代表按Enter键。这里scanf的运行过程如下。
(1)输入数字1,数字1存入变量a中。
(2)输入字母c,字母c存入变量c中。
(3)输入数字8,然后按Enter键,数字8存入变量b中。
scanf匹配输入和占位符的过程如图4.4所示。
图4.4 scanf匹配输入和占位符
注意
输入多个数值数据时,如果格式控制字符串中没有非格式字符作为输入数据之间的间隔,可以用空格作为间隔。
胖头老师总结了scanf的用法。
常用的scanf函数格式符如表4.2所示。
表4.2 常用的scanf函数格式符
最后我们用scanf来完成一个实用的程序,先输入性别和年龄,然后输出性别和年龄。
运行结果如下。
练习题
(1)找出以下代码中的错误。
(2)阅读程序写结果。
输入:2,3,4。
输出:________ 。
(3)补充程序,使得输入一个字母可以输出它的前一个字母和后一个字母。
(4)一个人捡了3个石头,现在要再捡一个石头使得总重量等于30斤。请编写程序计算应该捡多少斤石头。例如,输入“3,5,7”,输出“15”。
(5)请编写程序,输入一个三位数,输出各个数位之和。