C語(yǔ)言 庫(kù)函數(shù) fgets()
C語(yǔ)言 庫(kù)函數(shù) fgets()
C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) - <stdio.h>
C 庫(kù)函數(shù) char *fgets(char *str, int n, FILE *stream) 從指定的流 stream 讀取一行,并把它存儲(chǔ)在 str 所指向的字符串內(nèi)。當(dāng)讀取 (n-1) 個(gè)字符時(shí),或者讀取到換行符時(shí),或者到達(dá)文件末尾時(shí),它會(huì)停止,具體視情況而定。
1. 聲明
下面是 fgets() 函數(shù)的聲明。
char *fgets(char *str, int n, FILE *stream)
2. 參數(shù)
- str -- 這是指向一個(gè)字符數(shù)組的指針,該數(shù)組存儲(chǔ)了要讀取的字符串。
- n -- 這是要讀取的最大字符數(shù)(包括最后的空字符)。通常是使用以 str 傳遞的數(shù)組長(zhǎng)度。
- stream -- 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象標(biāo)識(shí)了要從中讀取字符的流。
3. 返回值
如果成功,該函數(shù)返回相同的 str 參數(shù)。如果到達(dá)文件末尾或者沒有讀取到任何字符,str 的內(nèi)容保持不變,并返回一個(gè)空指針。
如果發(fā)生錯(cuò)誤,返回一個(gè)空指針。
4. 實(shí)例
下面的實(shí)例演示了 fgets() 函數(shù)的用法。
#include <stdio.h> int main() { FILE *fp; char str[60]; /* 打開用于讀取的文件 */ fp = fopen("file.txt" , "r"); if(fp == NULL) { perror("打開文件時(shí)發(fā)生錯(cuò)誤"); return(-1); } if( fgets (str, 60, fp)!=NULL ) { /* 向標(biāo)準(zhǔn)輸出 stdout 寫入內(nèi)容 */ puts(str); } fclose(fp); return(0); }
假設(shè)我們有一個(gè)文本文件 file.txt,它的內(nèi)容如下。文件將作為實(shí)例中的輸入:
We are in 2014
讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
We are in 2014
相關(guān)文章
- C++ 函數(shù)
- C++ 異常處理
- C++ 面試題
- C語(yǔ)言 結(jié)構(gòu)體
- C語(yǔ)言 typedef
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <locale.h>
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <setjmp.h>
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <time.h>
- C# 變量
- C# 數(shù)組 Array
- C# 文件的輸入與輸出
- C++ 把引用作為返回值
- C++ 傳值調(diào)用
- C++ 拷貝構(gòu)造函數(shù)
- C++ 類的靜態(tài)成員
- C++ 下標(biāo)運(yùn)算符 [] 重載
- C語(yǔ)言 庫(kù)函數(shù) difftime()
- C# 排序列表(SortedList)
- C# 多維數(shù)組
- C# 參數(shù)數(shù)組