当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 scanf()用法及代码示例



描述

C库函数int scanf(const char *format, ...)从标准输入读取格式化输入。

声明

以下是 scanf() 函数的声明。

int scanf(const char *format, ...)

参数

  • format- 这是包含以下一项或多项的 C 字符串 -

    空白字符、非空白字符和格式说明符.格式说明符将类似于[=%[*][width][modifiers]type=]如下所述 -

不。 参数和描述
1

*

这是一个可选的起始星号,表示数据将从流中读取但被忽略,即它没有存储在相应的参数中。

2

width

这指定了当前读取操作中要读取的最大字符数。

3

modifiers

指定与 int(在 d、i 和 n 的情况下)、unsigned int(在 o、u 和 x 的情况下)或 float(在 e、f 和 g 的情况下)不同的大小,用于由相应的附加参数:h:short int(对于 d、i 和 n),或 unsigned short int(对于 o、u 和 x) l:long int(对于 d、i 和 n),或 unsigned long int(对于 o、 u and x), or double (for e, f and g) L:long double (for e, f and g)

4

type

指定要读取的数据类型以及预期读取方式的字符。见下表。

fscanf 类型说明符

类型 合格输入 参数类型
c 单个字符:读取下一个字符。如果指定的宽度不为 1,则该函数读取宽度字符并将它们存储在作为参数传递的数组的连续位置中。最后没有附加空字符。 字符 *
d 十进制整数:数字前面可选地带有 + 或 - 符号 整数 *
e, E, f, g, G 浮点数:包含小数点的十进制数,可以选择前面是 + 或 - 符号,后面可以是 e 或 E 字符和一个十进制数。有效条目的两个示例是 -732.103 和 7.12e4 漂浮 *
o 八进制整数: 整数 *
s 字符串。这将读取后续字符,直到找到空格(空格字符被视为空白、换行符和制表符)。 字符 *
u 无符号十进制整数。 无符号整数 *
x, x 十六进制整数 整数 *
  • additional arguments- 根据格式字符串,函数可能需要一系列附加参数,每个参数包含一个要插入的值,而不是格式参数中指定的每个 %-tag(如果有)。这些参数的数量应该与期望值的 %-tags 的数量相同。

返回值

成功时,该函数返回成功读取的参数列表的项目数。如果在读取时发生读取错误或到达文件末尾,则设置适当的指示符(feof 或 ferror),如果在任何数据可以成功读取之前发生任何一种情况,则返回 EOF。

示例

下面的例子展示了 scanf() 函数的用法。

#include <stdio.h>

int main () {
   char str1[20], str2[30];

   printf("Enter name:");
   scanf("%s", str1);

   printf("Enter your website name:");
   scanf("%s", str2);

   printf("Entered Name:%s\n", str1);
   printf("Entered Website:%s", str2);
   
   return(0);
}

让我们编译并运行上面的程序,它将在交互模式下产生以下结果 -

Enter name:admin
Enter your website name:www.tutorialspoint.com

Entered Name:admin
Entered Website:www.tutorialspoint.com

相关用法


注:本文由纯净天空筛选整理自 C library function - scanf()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。