fwrite
fwrite
在头文件 | | |
---|---|---|
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):
printfprintfsprintfsnprintfprintf_sfprintf_ssprintf_ssnprintf_s(C99)(C11)(C11)(C11)(C11) | 打印格式化输出到标准输出,文件流或缓冲区(功能) |
---|---|
的fputs | 将字符串写入文件流(函数) |
FREAD | 从文件读取(功能) |