關於C語言fgets函式要注意的地方

2021-10-01 20:53:28 字數 723 閱讀 8415

fgets函式一般用來讀入檔案內容,每次讀一行,然後存入快取區

有人問那怎麼讀下一行,直至讀完整個文字檔案的內容,其實很簡單,只要迴圈用fgets就行,如果你這次把第一行讀完了,那麼下一次檔案指標就會從第二行的開頭開始,下次用fgets就會從第二行開始讀啦!

值得一提的是,當fgets函式讀完一行,會自動新增乙個反斜槓0,即 『\0』

fgets函式的第乙個引數表示檔案讀入之後儲存的地方也就是快取區,一般是乙個陣列,中間的引數表示你要一次讀入多大的內容,第三個引數表示檔案fp,在這之前要先開啟檔案,就是fp=fopen()之類的格式

fgets函式停止的條件可能有兩個,第乙個是遇到了反斜槓n,表示這一行結束了,第二個就是讀入的字元數量已經到達了(中間引數-1),為什麼減一是因為最後要留乙個位置給 \0(第3點已經說明)

當fgets執行一次但一行的字元還沒有讀完時,下一次會接著讀那一行,直到遇到第5點說的兩種結束條件

如果是把檔案內容讀入陣列快取區,第二次會覆蓋第一次相對應位置的內容,因為每次都是從陣列的開始位址儲存檔案內容,所以如果是用指標控制陣列內容的提取(把內容寫到另乙個檔案之類的),每次fgets之後陣列指標都要置零,否則就會出現下一行前面的一些字元讀不進來或者所有字元都沒讀到直接讀到了反斜槓0(具體讀到了什麼可以debug追蹤一下相應的變數)

C語言fgets函式

c 庫函式char fgets char str,int n,file stream 從指定的流 stream 讀取一行,並把它儲存在str所指向的字串內。當讀取 n 1 個字元時,或者讀取到換行符時,或者到達檔案末尾時,它會停止,具體視情況而定。下面是 fgets 函式的宣告。char fgets...

C語言函式fgets

原型 char fgets char s,int n,file stream 引數 s 字元型指標,指向儲存讀入資料的緩衝區的位址。n 從流中讀入n 1個字元 stream 指向讀取的流。返回值 1.當n 0 時返回null,即空指標。2.當n 1 時,返回空串 3.如果讀入成功,則返回緩衝區的位址...

c語言中的fgets函式

char fgets char string,int size,file stream 引數說明 string為乙個字元陣列,用來儲存讀取到的字元。size為要讀取的字元的個數。如果該行字元數大於size 1,則讀到 size 1 個字元時結束,並在最後補充 0 如果該行字元數小於等於 size 1...