函数
<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个字符,以先发生的为准,并将它们打印到屏幕上。

另见