c语言输入函数 scanf 详解 - 解决常见输入问题


前言

初学者在使用scanf函数时会遇到许多问题
如输入3 5 结果却未赋值
在这里插入图片描述
*在其中有何作用
在这里插入图片描述
输入不对应的后果
在这里插入图片描述

……


要想正确使用scanf,我们首先要了解其组成

一:scanf函数的组成

scanf 即 格式化输入
库函数形式:int scanf( const char *format [,argument]… );

参数部分: 格式控制 + 地址表列

对于格式控制部分有两种字符 格式字符 与 其他字符

  1. 格式字符: %d %f %c %s %e %o %x %g
    格式附加字符:l h * 域宽
  2. 其他字符即除上述字符外的字符

应当注意的输入方式

  1. 对于scanf格式化输入,你从键盘上输入的字符串应包含scanf格式控制部分的其他字符
    在这里插入图片描述
  2. 键盘输入的,格式字符,赋给的变量类型 要一 一对应
    在这里插入图片描述
    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 被跳过了


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值