非常教程

C参考手册

文件输入/输出 | File input/output

fwrite

在头文件<stdio.h>中定义

size_t fwrite(const void * buffer,size_t size,size_t count,FILE * stream);

(直到C99)

size_t fwrite(const void * restrict buffer,size_t size,size_t count,FILE * restrict stream);

(自C99以来)

count将给定数组中的对象写入buffer输出流stream。这些目的通过reinterepreting每个对象作为数组写为如果unsigned char与呼叫fputc size时间为每个对象写入那些unsigned chars转换stream,为了。流的文件位置指示符按写入的字符数进行提前。

参数

缓冲

-

指向数组中要写入的第一个对象的指针

尺寸

-

每个对象的大小

计数

-

要写入的对象的数量

-

指向输出流的指针

返回值

成功写入的对象数量可能少于count发生错误时的数量。

如果size或者count为零,则fwrite返回零且不执行其他操作。

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
enum { SIZE = 5 };
int main(void)
{
    double a[SIZE] = {1, 2, 3, 4, 5};
    FILE *f1 = fopen("file.bin", "wb");
    assert(f1);
    int r1 = fwrite(a, sizeof a[0], SIZE, f1);
    printf("wrote %d elements out of %d requested\n", r1,  SIZE);
    fclose(f1);
 
    double b[SIZE];
    FILE *f2 = fopen("file.bin", "rb");
    int r2 = fread(b, sizeof b[0], SIZE, f2);
    fclose(f2);
    printf("read back: ");
    for(int i = 0; i < r2; i++)
        printf("%f ", b[i]);
}

输出:

wrote 5 elements out of 5 requested
read back: 1.000000 2.000000 3.000000 4.000000 5.000000

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.21.8.2 fwrite函数(p:335-336)
  • C99标准(ISO / IEC 9899:1999):
    • 7.19.8.2 fwrite函数(p:301-302)
  • C89 / C90标准(ISO / IEC 9899:1990):
    • 4.9.8.2 fwrite函数

printfprintfsprintfsnprintfprintf_sfprintf_ssprintf_ssnprintf_s(C99)(C11)(C11)(C11)(C11)

打印格式化输出到标准输出,文件流或缓冲区(功能)

的fputs

将字符串写入文件流(函数)

FREAD

从文件读取(功能)

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。