为什么要清缓存
各位哥哥姐姐,我有一事不明,在什么情况下要清理缓存?
能给我这个初学者深入讲解一下吗?谢谢了
各位哥哥姐姐,我有一事不明,在什么情况下要清理缓存?
能给我这个初学者深入讲解一下吗?谢谢了
2006-10-08 18:37

2006-10-08 19:35

2006-10-08 21:14
就我个人的理解是:在你输入y之前,你应该确保在你的缓冲区里面是没有任何字符的,应该是空的。当在你输入y之后按回车,在你的缓冲区里面就只有一个y!所以,我想你应该明白了!

2006-10-08 21:22
2006-10-08 23:13
2006-10-08 23:33

2006-10-09 08:18
因为你有的时候在输入一个字符后,在输入一个字符,如果你不清空缓冲区,那上一个字符还在你的缓冲区内!这样就造成错误了!明白了吗??
[/QUOTE][此贴子已经被作者于2006-10-9 10:46:45编辑过]

2006-10-09 10:46
因为你有的时候在输入一个字符后,在输入一个字符,如果你不清空缓冲区,那上一个字符还在你的缓冲区内!这样就造成错误了!明白了吗??
以前有个帖子对这个做了具体介绍 不是很长时间 自己先搜一搜
你去问问 nuciewth 他肯定记的那个帖子
不知道加没精华
2006-10-09 10:53
呵呵.简单的说
象scanf是从输入流缓冲区中读取值的.
而并非从键盘(也就是终端)缓冲区读取
而一般的情况下. scanf是遇到回车(\n)而结束的.
可是.他接受的值并没有\n 所以.这个\n很多时候是留在输入流缓冲区的
因为 scanf是从输入流缓冲区读取值.所以.在下一次的 scanf 会继续读取这个\n (当然.scanf遇到\n结束.所以造成了一次输入失败.)
问题是.很多的时候不会发生这种情况.这个我也不太明白其中的道理.不过 多数时候遇到 scanf 输入失败的情况就是这个原因
在值得提的一点是
getchar是从输入流缓冲区读取的
而getche是从键盘缓冲区读取的.

2006-10-09 10:59