C++官网参考链接:https://cplusplus.com/reference/cstdio/fgets/
函数
<cstdio>
fgets
char * fgets ( char * str, int num, FILE * stream );
从流中获取字符串
从stream中读取字符,并将其作为C字符串存储到str中,直到(num-1)字符被读取,或到达换行符或文件结束符,以先发生的情况为准。
换行符会使fgets停止读取,但它被函数视为有效字符,并包含在复制到str的字符串中。
在复制到str的字符之后会自动追加一个终止空字符。
注意,fgets与gets有很大的不同:fgets不仅接受stream实参,而且允许指定str的最大大小,并在字符串中包含任何结束换行符。
形参
str
指向复制所读字符串的字符数组的指针。
num
要复制到str的最大字符数(包括终止的空字符)。
stream
指向标识输入流的FILE对象的指针。
stdin可以用作从标准输入中读取的实参。
返回值
如果成功,函数返回str。
如果读取字符时遇到文件结束符,则设置文件结束指示符(feof)。如果在读取任何字符之前发生这种情况,则返回的指针是空指针(并且str的内容保持不变)。
如果发生读错误,则设置错误指示符(ferror)并返回空指针(但str所指向的内容可能已更改)。
用例
/* fgets example */
#include
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个字符(以先出现的为准),并将它们打印到屏幕上。