首页 > 编程笔记

C语言fgets():从文件读取一个字符串

fgets() 是 C语言标准库中的函数,定义在<stdio.h>头文件中。

fgets() 函数用于从文件中读取一个字符串,函数的原型如下:

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

参数

返回值

如果操作成功,返回 str;如果到达文件末尾或发生错误,则返回 NULL。

需要强调的是,读取到 n-1 个字符,或者读取到换行符,又或者读到文件末尾,fgets() 都会停止读取,读取到的字符串末尾会自动添加 '\0'。其中,当 fgets() 读取到换行符时,会将其视为有效字符保存到 str 数组中。

【实例】以下是一个 C语言 fgets() 函数的使用示例,该示例打开一个名为 example.txt 的文件,并逐行打印其内容:
#include <stdio.h>

int main() {
  FILE *file = fopen("example.txt", "r");
  if (file == NULL) {
    printf("Failed to open the file.\n");
    return 1;
  }

  char line[100];
  while (fgets(line, sizeof(line), file) != NULL) {
    printf("%s", line); // 打印读取的行
  }

  fclose(file);

  return 0;
}

总结

fgets() 函数提供了一种简单安全的方法来从文件中逐行读取文本。它自动处理字符串的终止,并允许指定最大读取长度以防止缓冲区溢出。这使得 fgets() 成为读取文本文件的常用和可靠的选择。

推荐阅读