函式
<cstdio>

fgets

char * fgets ( char * str, int num, FILE * stream );
從流中獲取字串
stream讀取字元,並將它們儲存為C字串到str中,直到讀取了(num-1)個字元,或者遇到換行符或檔案結尾,以先發生的為準。

換行符會使fgets停止讀取,但該函式認為它是一個有效字元,並將其包含在複製到str的字串中。

一個終止空字元會自動新增到str複製的字元之後。

請注意,fgetsgets 的區別很大:它不僅fgets接受一個stream引數,而且還允許指定str的最大大小,並將任何結尾的換行符包含在字串中。

引數

str
指向一個chars,讀取的字串被複制到這裡。
num
要複製到str的最大字元數(包括終止空字元)。
stream
指向標識輸入流的 FILE 物件的指標。
stdin 可以用作引數來從標準輸入讀取。

返回值

成功時,函式返回 str
如果在讀取字元時遇到檔案結尾,則會設定eof指示符feof)。如果這發生在任何字元可以被讀取之前,返回的指標將是一個空指標(str的內容保持不變)。
如果發生讀取錯誤,會設定錯誤指示符 (ferror) 並返回一個空指標(但 str 指向的內容可能已改變)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* fgets example */
#include <stdio.h>

int main()
{
   FILE * pFile;
   char mystring [100];

   pFile = fopen ("myfile.txt" , "r");
   if (pFile == NULL) perror ("Error opening file");
   else {
     if ( fgets (mystring , 100 , pFile) != NULL )
       puts (mystring);
     fclose (pFile);
   }
   return 0;
}

此示例讀取的第一個是myfile.txt檔案的前99個字元,以先發生的為準,並將它們列印到螢幕上。

另見