返回

了解 fputc() 和 fgetc() 函数:文件读写的基本构建块

后端

文件读写是编程中至关重要的操作。C 语言提供了诸如 fputc()fgetc() 等函数,这些函数允许程序员以字符为单位与文件进行交互。让我们深入研究这些函数,了解它们的工作原理以及如何在程序中使用它们。

fputc() 函数:向文件中写入字符

fputc() 函数将一个字符写入指定的流。流是一个抽象概念,它代表文件、网络连接或任何其他可以读写数据的来源或目的地。要使用 fputc() 函数,您需要提供三个参数:

  • stream:指向流的指针。在文件操作中,通常使用 FILE* 类型来表示流。
  • character:要写入流的字符。
  • fp:流指向的文件的结构体。

fputc() 函数返回写入字符的整数表示。如果写入成功,则返回字符本身。如果写入失败,则返回 EOF(文件结束)。

#include <stdio.h>

int main() {
  FILE *fp = fopen("myfile.txt", "w");
  if (fp == NULL) {
    perror("Error opening file");
    return EXIT_FAILURE;
  }

  char character = 'A';
  int result = fputc(character, fp);
  if (result == EOF) {
    perror("Error writing to file");
    fclose(fp);
    return EXIT_FAILURE;
  }

  fclose(fp);
  return EXIT_SUCCESS;
}

fgetc() 函数:从文件中读取字符

fgetc() 函数从指定的流中读取一个字符。它使用与 fputc() 函数相同的三参数:

  • stream:指向流的指针。
  • character:指向存储读取字符的变量。
  • fp:流指向的文件的结构体。

fgetc() 函数返回读取的字符。如果读取成功,则返回字符本身。如果读取失败,则返回 EOF

#include <stdio.h>

int main() {
  FILE *fp = fopen("myfile.txt", "r");
  if (fp == NULL) {
    perror("Error opening file");
    return EXIT_FAILURE;
  }

  char character;
  while ((character = fgetc(fp)) != EOF) {
    printf("%c", character);
  }

  fclose(fp);
  return EXIT_SUCCESS;
}

结论

fputc()fgetc() 函数是 C 语言中进行文件读写的基本构建块。它们允许程序员以字符为单位与文件进行交互。理解这些函数的工作原理至关重要,这将使您能够编写健壮且高效的文件处理程序。