首页 > 编程笔记

C语言fwrite():向文件中写入一个数据块

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

fwrite() 函数用来向文件中写入块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。

fwrite()函数的原型如下:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

参数


理论上,fwrite() 函数每次从文件中写入 size*count 个字节的数据。

返回值

返回实际写入的块数,也即 count。如果实际写入的块数小于 count,则可能发生了错误,或者是文件位置指针到了文件末尾。

【实例】下面是 C语言 fwrite() 函数的一个示例程序。
#include <stdio.h>

struct Student {
  int id;
  char name[50];
  float grade;
};

int main() {
  FILE *file;
  file = fopen("students.bin", "wb");

  if (file == NULL) {
    printf("Error opening file!\n");
    return 1;
  }

  struct Student student1;
  student1.id = 1;
  strncpy(student1.name, "Alice", sizeof(student1.name) - 1);
  student1.grade = 90.5;

  size_t result = fwrite(&student1, sizeof(struct Student), 1, file);

  if (result != 1) {
    printf("Error writing to file!\n");
    return 2;
  }

  fclose(file);
  printf("Data written successfully!\n");
  return 0;
}
这段代码创建了一个名为 students.bin 的文件,并在其中写入了一个 Student 结构。如果文件无法打开或写入数据时出现错误,程序会打印错误消息并返回非零退出代码。

推荐阅读