文章目录
前言
初学者在使用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 被跳过了