C 庫函數– fgets()
描述
C庫函數char *fgets(char *str, int n, FILE *stream)從指定的流stream讀取一行,並把它存儲在str所指向的字符串內。 當讀取(n-1)個字符時,或者讀取到換行符時,或者到達文件末尾時,它會停止,具體視情況而定。
聲明
下面是fgets() 函數的聲明。
char *fgets(char *str, int n, FILE *stream)
參數
- str --這是指向一個字符數組的指針,該數組存儲了要讀取的字符串。
- n --這是要讀取的最大字符數(包括最後的空字符)。通常是使用以str 傳遞的數組長度。
- stream --這是指向FILE對象的指針,該FILE對象標識了要從中讀取字符的流。
返回值
如果成功,該函數返回相同的str 參數。 如果到達文件末尾或者沒有讀取到任何字符,str 的內容保持不變,並返回一個空指針。
如果發生錯誤,返回一個空指針。
實例
下面的實例演示了fgets() 函數的用法。
#include <stdio.h> int main() { FILE *fp; char str[60]; /* 打开用于读取的文件 */ fp = fopen("file.txt" , "r"); if(fp == NULL) { perror("打开文件时发生错误"); return(-1); } if( fgets (str, 60, fp)!=NULL ) { /* 向标准输出 stdout 写入内容 */ puts(str); } fclose(fp); return(0); }
假設我們有一個文本文件file.txt ,它的內容如下。 文件將作為實例中的輸入:
We are in 2014
讓我們編譯並運行上面的程序,這將產生以下結果:
We are in 2014