1. 程式人生 > >我這樣清空緩衝區

我這樣清空緩衝區

清空緩衝區的必要性:

若緩衝區是在棧內分配是的則不需要手動清除,因為系統會幫你做完成這個工作,但是如果緩衝區分配在堆內的話就要自己手動清除了,不然會發生記憶體洩露。產生的問題就是佔用的資源不能及時釋放,從而影響系統性能。

清理緩衝區的三種方法:

1. fflush(stdin);

fflush(stdin)在VC上可以使用,但是其他編輯器不能保證對fflush()的實現。

2.setbuf(stdin, NULL);

setbuf(stdin, NULL);是使stdin輸入流由預設緩衝區轉為無緩衝區。

NOTE:緩衝區沒有了!!! 帶來的直接影響就是:效率低下!!!

3.
char c_tmp;


while((c_tmp = getchar() != ‘\n’) && ch != EOF);

這種方法使用的是C語言的基本語法,什麼情況下都支援的。