有趣的 scanf()

限制接收内容

这里的意思是直接收a、b、c作为ch的内容,遇到其它字符放入缓冲区中。

【scanf("%[...]",ch);只接收\[\]中的内容作为字符串的内容,将其它的内容放入缓冲区中】

这里将aaa后面的h放入缓冲区,但是没有抛弃掉,故而无法接收h后面的字符,所以,在执行下一次循环时,仍然输出之前接收的aaa。

利用两个getchar()分别接收h和e,剩下的正常接收即可。

因为接收的首字符就是不符合规定的,所以将其放在缓冲区不进行接收,继而导致后面的字符也无法接收。

休止符

将a、b、c当作休止符来停止接收。

【scanf("%[^...]",ch);之前规定的遇到空格、制表符、换行符停止接收都不作数,只有\[\]中^后面的作为休止符】

以上二者同时使用

以上二者同时出现时,以第一种情况执行,因为"^"本身就是一个字符,并且先出现的第一种情况。

相关推荐
·present·5 小时前
CSAPP(lecture 4_01)
c语言·c++
本地化文档9 小时前
llvm-libc-docs-l10n
c语言·github·gitcode·sphinx·llvm·crowdin
Felven10 小时前
B. Collecting Game
c语言
Felven10 小时前
C. Removing Smallest Multiples
c语言·开发语言
水饺编程12 小时前
第2章:Linux 基础,重启命令
linux·c语言·汇编
inrichtt13 小时前
第十一课时:串口中断接收与回调函数实战解析
c语言·数据结构·stm32·单片机·嵌入式硬件
潜创微科技14 小时前
CH592:集成 BLE 的青稞 RISC-V 无线 MCU
c语言·单片机·risc-v·无线投屏·低延迟·沁恒
学逆向的14 小时前
C 可变量参数
c语言·开发语言·网络安全
小莞尔15 小时前
【51单片机】【protues仿真】基于51单片机六路抢答器系统
c语言·单片机·嵌入式硬件·物联网·51单片机
心中有你021417 小时前
C 语言文件操作详解:从写入、追加到读取与定位的完整 实战
c语言·开发语言