scanf()
是 C 语言中常用的输入函数,用于从标准输入流(通常是键盘)读取数据,并按照指定的格式进行解析和存储。它的基本格式如下:
int scanf(const char *format, ...);
其中,第一个参数 format
是一个字符串,用于指定输入数据的格式。它包含了若干个格式控制符,每个控制符都以 %
开头,用于指定要读入的数据类型和如何解析输入数据。例如,%d
表示读入一个整数,%f
表示读入一个浮点数,%s
表示读入一个字符串。
scanf()
函数支持读入多种数据类型的数据,并且可以使用多个格式控制符按顺序读入多个数据。例如,下面的代码将从标准输入流中读入两个整数:
int a, b; scanf("%d %d", &a, &b);
在这个例子中,"%d %d" 是一个格式控制符,它表示要读入两个整数,中间以空格隔开。&a 和 &b 分别是两个整型变量的地址,用于将读入的数据存储到这两个变量中。
除了常见的数据类型外,scanf() 还支持读入字符、字符串、布尔型、长整型等其他类型的数据。以下是一些常用的格式控制符及其用法:
格式控制符 | 作用 | 示例 |
---|---|---|
%c |
读入一个字符 | scanf("%c", &ch); |
%s |
读入一个字符串,遇到空格或回车即停止 | scanf("%s", str); |
%d |
读入一个十进制整数 | scanf("%d", &num); |
%f 、%lf |
读入一个浮点数 | scanf("%f", &x); |
%o |
读入一个八进制整数 | scanf("%o", &num); |
%x |
读入一个十六进制整数 | scanf("%x", &num); |
%u |
读入一个无符号十进制整数 | scanf("%u", &num); |
%ld |
读入一个长整数 | scanf("%ld", &num); |
%lu |
读入一个无符号长整数 | scanf("%lu", &num); |
%p |
读入一个指针类型的值 | scanf("%p", &ptr); |
%hd |
读入一个短整数 | scanf("%hd", &num); |
%hu |
读入一个无符号短整数 | scanf("%hu", &num); |
%lf |
读入一个双精度浮点数 | scanf("%lf", &x); |
需要注意的是,使用 scanf()
函数时应该确保输入数据的格式与指定的格式控制符相匹配,否则可能会导致程序出现错误或不按预期运行。另外,在读取字符型变量时要小心,因为 scanf()
函数无法区分回车符和空格符,如果输入了额外的回车符或空格符,它们也会被读入到字符型变量中。
评论