c语言清除缓冲区的数据?

c语言清除缓冲区的数据?,第1张

while(getchar()!='n') -- 应当是 while(getchar()!='\n') 这是不断循环取字符,直到取到 Enter 键时结束循环。作用,清除上面一次输入时残留在输入流中的字符。

改用 fflush(stdin)更佳。

ret = scanf("%d,%d",&a,&b) ret 为成功读得的数据个数。

清除的缓冲区中的残留数据: if (ret != 2) fflush(stdin)

1、flush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃

fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准

输出设备

上。

2、scanf()函数接收

输入数据

时,遇以下情况结束一个数据的输入:(不是结束该

scanf函数

,scanf函数仅在每一个数据域均有数据,并按回车后结束)。

遇空格、“回车”、“跳格”键。

遇宽度结束。

遇非法输入。

键盘缓冲区就可能有残余信息问题。

scanf()函数应该只是扫描stdin流,这个残存信息是在stdin中

解决就要在scanf()函数之后加个fflush(stdin)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9235001.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存