文章目录
前言
初学者在使用scanf函数时会遇到许多问题
如输入3 5 结果却未赋值

*在其中有何作用

输入不对应的后果

……
要想正确使用scanf,我们首先要了解其组成
一:scanf函数的组成
scanf 即 格式化输入
库函数形式:int scanf( const char *format [,argument]… );
参数部分: 格式控制 + 地址表列
对于格式控制部分有两种字符 格式字符 与 其他字符
- 格式字符: %d %f %c %s %e %o %x %g
格式附加字符:l h * 域宽 - 其他字符即除上述字符外的字符
应当注意的输入方式
- 对于scanf格式化输入,你从键盘上输入的字符串应包含scanf格式控制部分的其他字符
如
- 键盘输入的,格式字符,赋给的变量类型 要一 一对应

scanf在读取是这样读取的 - 重点

地址表列
scanf将读取到的数据存放时是根据地址存放的,因此后面的参数应是地址
如
int a;
scanf(“%d”, &a);
char arr[23];
scanf(“%s”, arr);
返回值 - scanf返回成功读取到的项数

若没有读取到 任何项 则返回0

scanf() 函数检测到文件结尾或错误时,便返回EOF
一般用在循环里
如
int a;
while (scanf(“%d”, &a) != EOF)
{
;
}
二:格式附件字符*的作用

scanf()中把 * 放在 % 和 转换字符 之间 会使scanf()跳过相应的输入项
即上述输入中的 3 被跳过了
博客主要围绕C语言的scanf函数展开。介绍了scanf函数的组成,包括参数部分的格式控制(含格式字符、其他字符、格式附加字符)和地址表列,还说明了其返回值为成功读取到的项数。此外,讲解了格式附加字符*的作用,即放在%和转换字符间会使scanf跳过相应输入项。
982

被折叠的 条评论
为什么被折叠?



