C 库函数 - scanf()
C 语言教程
· 2019-02-23 20:11:37
描述
C 库函数 int scanf(const char *format, ...) 从标准输入 stdin 读取格式化输入。
声明
下面是 scanf() 函数的声明。
int scanf(const char *format, ...)
参数
- format -- 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
format 说明符形式为 [=%[*][width][modifiers]type=],具体讲解如下:
| 参数 | 描述 |
|---|---|
| * | 这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视,即它不存储在对应的参数中。 |
| width | 这指定了在当前读取操作中读取的最大字符数。 |
| modifiers | 为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型(针对 e、f 和 g) |
| type | 一个字符,指定了要被读取的数据类型以及数据读取方式。具体参见下一个表格。 |
scanf 类型说明符:
| 类型 | 合格的输入 | 参数的类型 |
|---|---|---|
| c | 单个字符:读取下一个字符。如果指定了一个不为 1 的宽度 width,函数会读取 width 个字符,并通过参数传递,把它们存储在数组中连续位置。在末尾不会追加空字符。 | char * |
| d | 十进制整数:数字前面的 + 或 - 号是可选的。 | int * |
| e,E,f,g,G | 浮点数:包含了一个小数点、一个可选的前置符号 + 或 -、一个可选的后置字符 e 或 E,以及一个十进制数字。两个有效的实例 -732.103 和 7.12e4 | float * |
| o | 八进制整数。 | int * |
| s | 字符串。这将读取连续字符,直到遇到一个空格字符(空格字符可以是空白、换行和制表符)。 | char * |
| u | 无符号的十进制整数。 | unsigned int * |
| x,X | 十六进制整数。 | int * |
- 附加参数 -- 根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。
返回值
如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
实例
下面的实例演示了 scanf() 函数的用法。
实例
#include <stdio.h>
int main()
{
char str1[20], str2[30];
printf("请输入用户名:");
scanf("%s", str1);
printf("请输入您的网站:");
scanf("%s", str2);
printf("输入的用户名:%s\n", str1);
printf("输入的网站:%s", str2);
return(0);
}
让我们编译并运行上面的程序,这将在交互模式下产生以下结果:
请输入用户名:admin 请输入您的网站:www.codercto.com 输入的用户名:admin 输入的网站:www.codercto.com
点击查看所有 C 语言教程 文章: https://codercto.com/courses/l/17.html
Mobilizing Web Sites
Layon, Kristofer / 2011-12 / 266.00元
Everyone has been talking about the mobile web in recent years, and more of us are browsing the web on smartphones and similar devices than ever before. But most of what we are viewing has not yet bee......一起来看看 《Mobilizing Web Sites》 这本书的介绍吧!