C 庫函數 - fgets()

C 標準庫 - <stdio.h> C 標準庫 - <stdio.h>

描述

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

C 標準庫 - <stdio.h> C 標準庫 - <stdio.h>