scanf函数详解:使用与示例

需积分: 33 2 下载量 19 浏览量 更新于2024-09-09 收藏 89KB PDF 举报
"这篇文段主要介绍了C语言中的`scanf`函数,包括其基本用法、格式字符的说明以及在实际编程中的应用示例。" `scanf`函数是C语言中用于从标准输入(通常是键盘)读取数据的输入函数。它的基本语法是`scanf(格式控制, 地址表列)`,其中`格式控制`是与`printf`函数类似的字符串,用来定义要读取的数据类型和格式,而`地址表列`是一系列变量的地址,这些变量将接收输入的数据。 `scanf`函数返回值表示成功赋值的数据项数,如果遇到错误或者文件结束,则返回`EOF`。例如,以下代码段展示了如何使用`scanf`输入三个整数: ```c #include<stdio.h> void main() { int a, b, c; printf("input a, b, c\n"); scanf("%d%d%d", &a, &b, &c); printf("a=%d, b=%d, c=%d", a, b, c); } ``` 在`scanf`函数中,各种`%`符号代表不同的数据类型。如: - `%d`用于读取十进制整数。 - `%c`用于读取单个字符。 - `%s`用于读取字符串。 - `%f`用于读取浮点数。 - `%p`用于读取内存地址。 - `%n`用于获取已经读取的字符数。 除了基本的格式字符,还有一些修饰符可以进一步定制输入: - `L/l`用于读取长整型数据。 - `h`用于读取短整型数据。 - `W`后面跟一个整数,指定输入数据的宽度。 - `*`用于跳过某个数据项不读取。 - `hh`, `ll`是C99新增的,分别用于读取最小的整型和最大的整型。 - `(B)`表示`scanf`会忽略输入中的空白字符,直到遇到非空白字符。 - `(C)`表示`scanf`会读取一个特定的非空白字符,并且跳过后续的相同字符。 在实际使用中,需要注意`scanf`函数会受到输入格式的影响,例如输入3个整数时,用户可能使用空格、制表符或换行符分隔。在给出的例程中,即使用户输入的是"3□4□5",其中的"□"不是空格,程序也能正确读取到3、4、5这三个数值。 总结来说,`scanf`函数是C语言中处理输入的重要工具,理解并熟练运用其格式控制和修饰符,能够帮助我们更灵活地处理各种输入数据。