C语言scanf函数详解:格式化输入利器
C语言scanf函数详解:格式化输入利器
scanf 函数是C语言标准库中的一个重要函数,用于从标准输入(通常是键盘)读取数据,并根据指定的格式字符串将数据解析为不同类型的值,存储到指定的变量中。
函数原型
int scanf(const char *format, ...);
format:格式字符串,用于指定输入数据的格式以及如何将数据解析为不同类型的值。...:可变参数列表,表示可以接受任意数量的参数,这些参数通常是指向变量的指针,用于存储读取到的数据。
格式字符串
格式字符串是 scanf 函数的核心,它由以下内容组成:
- 格式指示符: 以
%符号开头,后跟一个或多个字符,用于指定数据的类型和格式。 - 普通字符: 除格式指示符以外的字符,这些字符必须与输入数据完全匹配。
常用格式指示符
| 格式指示符 | 数据类型 | 说明 |
|---|---|---|
| %d | 整数 | 读取十进制整数 |
| %i | 整数 | 读取十进制、八进制或十六进制整数 |
| %u | 无符号整数 | 读取无符号十进制整数 |
| %o | 无符号整数 | 读取八进制整数 |
| %x 或 %X | 无符号整数 | 读取十六进制整数 |
| %f 或 %lf | 浮点数 | 读取浮点数 |
| %c | 字符 | 读取单个字符 |
| %s | 字符串 | 读取字符串,遇到空格或换行符停止 |
使用示例
#include <stdio.h>
int main() {
int num;
float f;
char ch;
char str[20];
printf('请输入一个整数:');
scanf('%d', &num); // 读取输入的整数,并将其赋值给 num 变量
printf('请输入一个浮点数:');
scanf('%f', &f); // 读取输入的浮点数,并将其赋值给 f 变量
printf('请输入一个字符:');
scanf(' %c', &ch); // 读取输入的字符,并将其赋值给 ch 变量,注意空格
printf('请输入一个字符串:');
scanf('%s', str); // 读取输入的字符串,并将其赋值给 str 变量
printf('您输入的整数是:%d
', num);
printf('您输入的浮点数是:%f
', f);
printf('您输入的字符是:%c
', ch);
printf('您输入的字符串是:%s
', str);
return 0;
}
注意事项
- 使用
scanf函数读取数据时,需要传入变量的地址(使用&符号),以便将读取到的数据存储到变量中。 - 使用
%c格式指示符读取字符时,建议在格式字符串前加一个空格,如' %c',这样可以跳过前面的空白字符(如空格、换行符等),读取有效的字符。 - 使用
%s格式指示符读取字符串时,遇到空格或换行符会停止读取,如果要读取包含空格的字符串,可以使用fgets函数。 scanf函数的返回值为成功读取并赋值的参数个数,如果成功读取了所有参数,则返回成功读取的参数个数,否则返回负数表示读取失败,可以使用返回值判断输入是否合法。
希望本文能够帮助您更好地理解和使用 scanf 函数,轻松完成C语言中的格式化输入操作。
原文地址: https://www.cveoy.top/t/topic/bpF1 著作权归作者所有。请勿转载和采集!