linux c编程,清理缓存影响输出的典型

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:39:24
我不大清楚清理缓存到底什么时候用,应该搁置在哪儿,所以经常会遇到比如:
原意是输出abc,输出却是abc换行加乱码或是上一次输入的内容。
所以希望有热心人能总结下典型错误并给出解决办法,先谢过了!

当循环时使用scanf函数时,或是多次用时,要清除缓冲区内容(scanf函数是缓冲输入,类似与栈的形式,必须清除),否则会有上一次输入的内容或将回车认为是换行等问题。在多次使用输入时,要在用后清除缓冲区内容。一般用 setbuf(stdin,NULL);来实现。
因此,如果你的程序只有一个输入,那么一般是必要清除了,如果有循环使用,最好在都清除,即循环时,每用一次就清除,这样就保证下一次正确了。
个人观点。

关注

没遇到过,但你可以每次printf的后面加上换行符,这样会把缓冲区冲洗然后屏幕上输出一行