1. 程式人生 > >關於C語言fgets函式的問題

關於C語言fgets函式的問題

C語言中從鍵盤輸入的函式有好幾個,fgets就是其中之一。

今天我用fgets函式寫程式碼時也遇到一個問題:在第一次呼叫fgets函式後程序不會阻塞,而是輸出一個回車鍵,待第二次遇到fgets函式時,程式才阻塞。

經過好長時間的排查,才發現問題所在——在第一次呼叫fgets函式時,輸入緩衝區有內容,導致fgets直接從輸入緩衝區取出了資料進行輸出,就會有上述問題出現。

問題找到了,解決起來就簡單了,只需要在使用fgets之前將輸入緩衝區清空一遍,就可以了。

清空緩衝區的辦法有很多,這裡我為大家提供一個函式及其用法:setbuf(stdin,NULL)

其他的辦法讀者可自行百度一下。