函數(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。