fgets

fgets

具有标準輸出設備自動刷清功能的字符串函數
從文件結構體指針stream中讀取數據,每次讀取一行。讀取的數據保存在buf指向的字符數組中,每次最多讀取bufsize-1個字符(第bufsize個字符賦'\0'),如果文件中的該行,不足bufsize個字符,則讀完該行就結束。如若該行(包括最後一個換行符)的字符數超過bufsize-1,則fgets隻返回一個不完整的行,但是,緩沖區總是以NULL字符結尾,對fgets的下一次調用會繼續讀該行。函數成功将返回buf,失敗或讀到文件結尾返回NULL。因此我們不能直接通過fgets的返回值來判斷函數是否是出錯而終止的,應該借助feof函數或者ferror函數來判斷。
    中文名:C語言中從文件中獲取字符串函數 外文名:fgets 别名: 功能:标準輸出設備自動刷清 函數使用:鍵盤輸入fgets(key,n,stdin) 長度:1字節的字符串

函數(ISOC)

函數原型

char *fgets(char *buf, int bufsize, FILE *stream);

參數

*buf: 字符型指針,指向用來存儲所得數據的地址

bufsize: 整型數據,指明存儲數據的大小。

*stream: 文件結構體指針,将要讀取的文件流。

返回值

如果成功,該函數返回相同的 str 參數。如果到達文件末尾或者沒有讀取到任何字符,str 的内容保持不變,并返回一個空指針。如果發生錯誤,返回一個空指針。

在讀字符時遇到end-of-file,則EOF指示器被設置,如果還沒讀入任何字符就遇到這種情況,則buf保持原來的内容,返回NULL;如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。

功能

從指定的流 stream 讀取一行,并把它存儲在str所指向的字符串内。當讀取(n-1)個字符時,或者讀取到換行符時,或者到達文件末尾時,它會停止,具體視情況而定。

序例

fgets函數用來從文件中讀入字符串。fgets函數的調用形式如下:fgets(str,n,fp);此處,fp是文件指針;str是存放在字符串的起始地址;n是一個int類型變量。函數的功能是從fp所指文件中讀入n-1個字符放入str為起始地址的空間内;如果在未讀滿n-1個字符之時,已讀到一個換行符或一個EOF(文件結束标志),則結束本次讀操作,讀入的字符串中最後包含讀到的換行符。因此,确切地說,調用fgets函數時,最多隻能讀入n-1個字符。讀入結束後,系統将自動在最後加'0',并以str作為函數值返回。

函數原型是:char *fgets(char *s, int n, FILE *stream);

函數使用

同時可以用作鍵盤輸入:fgets(key,n,stdin)且還必須:key[strlen(key)-1]='0'

還有種程序經常使用的方法:key[strlen(key-1)]=0x00;

與gets相比使用這個好處是:讀取指定大小的數據,避免gets函數從stdin接收字符串而不檢查它所複制的緩存的容積導緻的緩存溢出問題

fgets

(PHP 3, PHP 4, PHP 5)

fgets -- 從文件指針中讀取一行

說明

string fgets ( int handle, [ int length] )

從 handle 指向的文件中讀取一行并返回長度最多為 length - 1 字節的字符串。碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 字節後停止(看先碰到那一種情況)。如果沒有指定 length,則默認為 1K,或者說 1024 字節。

出錯時返回 FALSE。

相關詞條

相關搜索

其它詞條