C 库 - fwrite() 函数



C 库的 fwrite() 函数将数据从 `ptr` 指向的数组写入给定的流。

语法

以下是 C 库 fwrite() 函数的语法:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

参数

此函数接受以下参数:

  • const void *ptr: 指向要写入的元素数组的指针。

  • size_t size: 要写入的每个元素的字节大小。
  • size_t nmemb: 元素数量,每个元素的大小为 `size` 字节。

  • FILE *stream: 指向 FILE 对象的指针,该对象标识将写入数据的流。

返回值

fwrite() 函数返回成功写入的元素总数。如果此数字小于 nmemb,则表示发生了错误或已到达文件末尾。

示例 1

将整数数组写入二进制文件

此示例将整数数组写入名为 example1.bin 的二进制文件。输出确认所有 5 个元素都已成功写入文件。

#include <stdio.h>

int main() {
   FILE *fp;
   int arr[] = {1, 2, 3, 4, 5};
   size_t n = sizeof(arr) / sizeof(arr[0]);

   fp = fopen("example1.bin", "wb");
   if (fp == NULL) {
      perror("Error opening file");
      return 1;
   }

   size_t written = fwrite(arr, sizeof(int), n, fp);
   printf("Number of elements written: %zu\n", written);

   fclose(fp);
   return 0;
}

输出

以上代码产生以下结果:

Number of elements written: 5

示例 2

将字符串写入文本文件

此示例将字符串写入名为 example3.txt 的文本文件。输出表明 13 个字符(包括感叹号)已成功写入文件。

#include <stdio.h>
#include <string.h>

int main() {
   FILE *fp;
   const char *str = "Hello, World!";

   fp = fopen("example3.txt", "w");
   if (fp == NULL) {
      perror("Error opening file");
      return 1;
   }

   size_t written = fwrite(str, sizeof(char), strlen(str), fp);
   printf("Number of elements written: %zu\n", written);

   fclose(fp);
   return 0;
}

输出

执行上述代码后,我们得到以下结果:

Number of elements written: 13
广告