scanf函数用法解析
一、基本语法
`scanf`函数用于从标准输入(如键盘)读取格式化数据,并将数据存储到指定的变量中。其基本语法为:
```c
int scanf(const char *format, argument...);
```
`format`:格式控制字符串,包含类型说明符和普通字符;
`argument...`:变量地址列表,需与格式说明符一一对应。
二、格式说明符
基本类型说明符 `%d`:读取整数(如`123`);
`%c`:读取单个字符(如`A`);
`%f`:读取浮点数(如`3.14`);
`%s`:读取字符串(如`Hello`)。
格式说明符扩展
宽度与精度: `%5d`表示输出宽度为5的整数,不足部分补零(如`0042`); 浮点数精度
三、典型用法示例
读取单一数据 ```c
int num;
scanf("%d", &num);
printf("你输入的整数是:%d
", num);
```
读取多个数据
```c
int a, b;
printf("请输入两个整数,用空格隔开:");
scanf("%d %d", &a, &b);
printf("a=%d, b=%d
", a, b);
```
读取带格式的数据
```c
float price;
printf("请输入商品价格:");
scanf("%d.2f", &price);
printf("商品价格为:%.2f元
", price);
```
错误处理
`scanf`返回值:
成功读取的项数(如2);
0:输入结束或错误;
EOF:文件结束。
四、注意事项
内存管理: 确保变量地址已分配内存,且类型匹配; 避免缓冲区溢出,推荐使用`fgets`替代`gets`; 不同操作系统对换行符处理可能不同,建议使用`%c`读取字符时指定长度(如`%10c`)。 五、扩展功能 文件输入格式字符串安全:
平台差异:
格式化输出:与`printf`配合使用,实现双向数据交互。
通过以上要点,可灵活运用`scanf`函数完成复杂输入需求。