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 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 | 从文件读取(功能) |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com