fgets函式和gets函式

2021-07-10 06:09:21 字數 473 閱讀 8042

請找出下面**裡的問題:

#includeint main(void) 

答:先看看fgets()和gets()的函式原型

char* fgets(char *s, int n, file *stream);  

char* gets(char *s);

一般使用

fgets()

,都是讀取

檔案或者緩衝區

當中的n-1個

字元到s

中,其實,

此函式還有乙個很好的用處就是從標準輸入流中讀取字串,而且不用擔心輸入的字元個數超出了字元陣列的大小而導致溢位的問題。所以

上面**裡的問題在於函式gets()的使用,這個函式從stdin接收乙個字串而不檢查它所複製的快取的容積,這可能會導致快取溢位。這裡應該使用標準函式fgets()。

fgets 和gets 函式的區別

在程式設計中發現gets和fgets一些區別總結一下 1 fgets比gets安全!為了安全,gets少用,因為其沒有指定輸入字元的大小,限制輸入緩衝區得大小,如果輸入的字元大於定義的陣列長度,會發生記憶體越界,堆疊溢位。後果非常嚴重!fgets會指定大小,如果超出陣列大小,會自動根據定義陣列的長度...

fgets 和gets 函式的區別

在程式設計中發現gets和fgets一些區別總結一下 1 fgets比gets安全!為了安全,gets少用,因為其沒有指定輸入字元的大小,限制輸入緩衝區得大小,如果輸入的字元大於定義的陣列長度,會發生記憶體越界,堆疊溢位。後果非常嚴重!fgets會指定大小,如果超出陣列大小,會自動根據定義陣列的長度...

gets和fgets函式的區別

gets函式原型 char gets char buffer 讀取字元到陣列 gets str str為陣列名。gets函式功能 從鍵盤上輸入字元,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。讀取的換行符被轉換為null值,做為字元陣列的最後乙個字元,來結...