scanf函数
函数概要:
scanf 函数从标准输入流中读取格式化字符串。
与 printf 格式化输出函数相反,scanf 函数是格式化输入函数。
函数原型:
#include <stdio.h>
...
int scanf(const char *format, ...);
参数解析:
1、format 参数
format 参数是一个格式化字符串,由格式化占位符和普通字符组成。
该格式化字符串指定如何处理读取到的数据:
空白字符:该函数将读取并忽略空白字符(空白字符包含空格、回车和制表符);
除了格式占位符(% 开头)外的非空白字符:指定函数必须从输入流中读取到的字符,如果读取不匹配,则函数调用失败,并从匹配失败处截断输入流;
格式化占位符(% 开头):用于指明获取的数据类型及位置。
格式化占位符的语法如下:
%[width][length]specifier
每一个格式化占位符均以 % 开始,以转换字符结束。
注1:除了 n,其他的每次读取都会至少消耗标准输入流中的一个字符。
注2:如果读取失败,则标准输入流截断于读取失败的位置。
星号(*)、width 和 length 是可选的。
小甲鱼温馨提示:因为整理自官方文档,所以出现了很多暂时你还不认识的东东,不用怕,暂时忽视他们即可……
2、… 附加参数
该参数的个数由格式化字符串决定。
每个参数均为一个存储空间,并与面格式化字符串中占位符的类型和位置一一对应。
如果是一个普通的变量名,应在其名字前边加上 & 符号。
返回值:
如果函数调用成功,返回值是成功获取并填充到附加参数中的个数。
如果函数调用失败,返回值小于附加参数的个数(甚至是 0)。
如果读取到标准输入流的结尾处,则返回 EOF。
演示:
#include <stdio.h>
int main()
{
char c;
int i;
int j;
scanf("%c%d%x", &c, &i, &j);
printf("变量c的值是:%c\n", c);
printf("变量i的值是:%d\n", i);
printf("变量j的值是:%#X(%d)\n", j, j);
return 0;
}
来源:https://fishc.com.cn/thread-67391-1-1.html