C++官网参考链接:https://cplusplus.com/reference/cstdio/fwrite/
函数
<cstdio>
fwrite
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
向流写入数据块
将count个元素的数组(每个元素的大小为size个字节)从ptr指向的内存块写入stream中的当前位置。
stream的位置指示符按写入的总字节数向前移动。
在内部,该函数将ptr指向的块解释为unsigned char类型的(size*count)个元素的数组,并将它们按顺序写入stream,就像每个字节都调用fputc一样。
形参
ptr
指向要写入的元素数组的指针,转换为const void*。
size
要写入的每个元素的字节大小。
size_t是无符号整型。
count
元素数量,每个元素的大小为size个字节。
size_t是无符号整型。
stream
指向指定输出流的FILE对象的指针。
返回值
返回成功写入的元素总数。
如果此数字与count形参不同,则写入错误阻止函数完成。在这种情况下,将为stream设置错误指示符(ferror)。
如果size或count为0,则函数返回0,并且错误指示符保持不变。
size_t是无符号整型。
用例
/* fwrite example : write buffer */
#include
int main ()
{
FILE * pFile;
char buffer[] = { 'x' , 'y' , 'z' };
pFile = fopen ("myfile.bin", "wb");
fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
fclose (pFile);
return 0;
}
创建一个名为myfile.bin的文件,并将缓冲区的内容存储在其中。为简单起见,缓冲区包含char元素,但也可以包含任何其他类型。
sizeof(buffer)是以字节为单位的数组长度(在本例中为3,因为数组有三个元素,每个元素一个字节)。