为了账号安全,请及时绑定邮箱和手机立即绑定

求大神指点

关于缓冲区的问题。缓冲区是不是分为输入和输出缓存,你在屏幕上输入时就是将数据以字符写入了缓冲区,当你按下回车就是将数据以指定格式读取到内存,而输出就是将数据从内存读取,在写入到输出缓冲区,屏幕上你打的字符和输出的字符被缓冲区读取到了哪里?既然它显示了就应该占据空间,而缓冲区又太小,屏幕上那么多的字符在哪里存着呢?

第二个问题:while (getchar() != ‘\n’)

                        continue;

    putchar();

具有丢弃除了字符的功能,是不是getchar()每从缓冲区读取一次字符,就会将该字符清除,还是会将光标移到下一个字符开始读取?

当getchar() == ‘\n’时已经不满足循环条件了,那'\n’是被使用了还是被清除了?

求大神解惑,关于缓冲区的疑问...做输入验证时发现‘'\n’真是一个麻烦的字符。


正在回答

3 回答

https://www.cnblogs.com/ghbuff/articles/15915563.html  https://www.bilibili.com/read/cv17290379  缓冲区问题 键盘录入以换行符号'\n' 结尾  回车后 缓冲区一定有一个'\n'  此时用scanf("%*[^\n]");吸收掉除换行符以外的东西  scanf("%*c") 再吸收一个字符('\n')此时缓冲区就空了

0 回复 有任何疑惑可以回复我~

while小括号后面的getchar不能这么写,书写有误

0 回复 有任何疑惑可以回复我~

我觉得你得问题有点长,所以很少有人回答。。。。。。。。


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言结构体
  • 参与学习       118506    人
  • 解答问题       166    个

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

进入课程

求大神指点

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号