scanf详解以及其与gets,getchar的区别

,scanf函数,其需要从键盘输入,将得到的数据放在缓冲区,并且读取数据,并根据参数格式将它们存储到附加参数所指向的位置。

scanf函数:int scanf(const char*format,……)                                                                              scanf函数的参数至少为2个,第一个为格式控制字符串,其中包含格式说明符%,用于指定输出的数据并存储到附加参数所指向的数据的类型和格式。scanf的格式说明符遵循以下原则:

%[*][宽度][长度]说明符 其中说明符最为重要,它定义了提取哪些字符,它们的解释和参数的类型:

格式书说明符还包含了*(赋值忽略符号),宽度和长度,它们不是硬性的要求。其中*表示数据读取但是被忽略,即它不存储在参数指定的位置。宽度是指指定当前读取操作中要读取的最大字符数,长度(我还没搞懂,先留着填坑)。

scanf函数有返回值,其返回值是一个整数,该整数在数值上等于函数成功填充的参数列表的项数。如果发生读取失败或者在读取时到达文件的末位,则会返回EOF(end of file文件结束标志,数值上等于-1)。

scanf()与gets()getchar()的区别:

scanf函数在遇见空格,回车 跳格键的时候停止,其中会将回车键放在缓冲区。

getchar:每一次从键盘的缓冲区只可以读取单个字符,但是无限输出时,可以ctrl+z--<回车>停止输出,其中回车键也会放在缓冲区。

gets()则是读取字符串直到回车结束,但是回车键不属于该字符串(也不会存在于键盘缓冲区)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值