fgets() 原型
char* fgets(char* str,int count,FILE* stream);
fgets()
函数从给定的文件流中读取最多 count-1
个字符,并将它们存储在 数组 str 指向的位置。
解析会一直进行,直到到达文件末尾或找到换行符 (\n)。如果找到了换行符,数组 str 也会包含该换行符。如果没有发生错误,会在 str 的末尾写入一个空字符。
它定义在 <cstdio> 头文件中。
fgets() 参数
- str: 指向存储文件内容的字符数组的指针。
- count: 要写入的最大字符数。
- stream: 读取字符的文件流。
fgets() 返回值
- 成功时,
fgets()
函数返回 str,失败时返回空指针。 - 如果失败是由于文件结束条件引起的,它会设置
eof
标志。在这种情况下,str 的内容不会改变。 - 如果失败是由于其他错误引起的,它会设置错误标志。在这种情况下,str 的内容是不确定的。它们甚至可能不是以空字符结尾的。
示例:fgets() 函数的工作原理
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int count = 10;
char str[10];
FILE *fp;
fp = fopen("file.txt","w+");
fputs("An example file\n", fp);
fputs("Filename is file.txt\n", fp);
rewind(fp);
while(feof(fp) == 0)
{
fgets(str,count,fp);
cout << str << endl;
}
fclose(fp);
return 0;
}
运行程序时,可能的输出是
An exampl e file Filename is file.t xt
另请阅读