如果缓冲区是在栈里分配的话是不需要清除的,因为系统会帮你做这个工作,但是如果缓冲区是分配在堆里的话就要自己手动清除了,不然会发生内存泄露,就是虽然不使用,但占用的资源仍然不能释放,会影响系统性能。清除缓冲区有三种方法:方法一:fflush(stdin);fflush(stdin)在VC上可以使用,但是其他编译器不能保证对fflush的实现。方法二:setbuf(stdin, NULL);setbuf(stdin, NULL);是使stdin输入流由默认缓冲区转为无缓冲区。但缓冲区没有了。方法三:char ch;while((ch = getchar()) != '
' && ch != EOF);这种方法是最好的方法,因为它使用的是C语言的基本语法,在什么情况都是支持的。