©
This document uses PHP Chinese website manual Release
在头文件<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 char
s转换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 | 从文件读取(功能) |