1.3.2 scanf函数
更新于 2026年10月10日
版权声明
1.3.2 scanf函数
scanf函数的一般形式如下:
scanf("格式控制字符串",地址表列);
其中,格式控制字符串的作用与printf函数中的相同。地址表列用于给出各变量的地址。地址是由地址运算符“&”和变量名组成的。例如,“&i”和“&j”分别表示变量i和变量j的地址。
例1-15 编程实现如下要求:输入两个整数,并输出它们。
程序如下:

使用scanf函数输入两个整数时,格式控制字符串使用了“%d%d”,地址表列使用的“&i”和“&j”的含义为将键盘输入的两个整型数据分别存入变量i和变量j的存储单元,也就是赋值给变量i和j。在运行时,显示屏会出现“请输入两个整数:”的提示文字,从键盘敲入两个整数时,中间可以通过空格键、回车键、Tab键分隔。
上述显示的运行结果是用空格分隔的。
只有输入的是整型数据,并且格式控制字符串之间没有分隔符时,才可以通过空格键、回车键、Tab键分隔输入的多个整数。如果格式控制字符串之间有指定分隔符时,输入数据就必须按照指定分隔符来分隔,否则会发生错误。
例1-16 下面程序的运行结果是什么?
(https://www.daowen.com)

在例1-16中,输入两个整数5和10时,之间必须用逗号分隔。如果用空格分隔,就会出现如下错误:

如果格式控制字符串是实型,则必须要使用分隔符,否则也会发生错误。
例1-17 编程实现如下要求:输入两个实数,并按实型输出这两个整数。
程序如下:

输入3.15和6.2,因为scanf函数中的格式控制字符串之间没有分隔符,所以若输入数据时输入3.156.2,则无法判断到底是什么样的两个实数,因此输出了如下错误的值。

因此对于实数来说,使用scanf函数输入数据时,必须在格式控制字符串中使用分隔符。