在头文件中定义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 #include #include 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
输出:
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从文件读取(功能)