C++ fgets()

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

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战