Home C&C++函数库 c++ 语法 程序源码 Linux C库

fgets

函数  <cstdio>

char * fgets ( char * str, int num, FILE * stream );

从流获取字符串

从流中读取字符,并将它们作为C字符串存储到str中,直到(num-1)字符被读取, 或者到达换行符或文件结束符,以最先发生的为准。

换行符会使fgets停止读取,但该函数认为它是一个有效字符,并将其包含在复制到str的字符串中。

在复制到str的字符之后会自动附加一个终止空字符。

注意,fgets与gets有很大的不同:fgets不仅接受流参数,还允许指定str的最大大小,并在字符串中包含任何结束的换行符。

☲  参数



str
指向字符数组的指针,在数组中填充读取的字符串。

num
要复制到str中的最大字符数(包括终止空字符)。

stream
指向标识输入流的FILE对象的指针。
stdin可以用作从标准输入读取的参数。

☉  返回值



如果成功,函数将返回str。

如果在试图读取字符时遇到文件结束符,则设置eof指示符(feof)。 如果在读取任何字符之前发生这种情况,则返回的指针为空指针(并且str的内容保持不变)。

如果发生读错误,则设置错误指示符(ferror)并返回一个空指针(但str所指向的内容可能已经更改)。

☣  示例



/* 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个字符(以先到的为准),并在屏幕上打印它们。

🍄  另请参阅



gets 从stdin获取字符串(function )
fgetc 从流中获取字符(function )
fread 从流中读取数据块(function )

联系我们 免责声明 关于CandCplus 网站地图