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 ) |