函式
<cstdio>

fwrite

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
將資料塊寫入流
從指向 ptr 的記憶體塊中,將 count 個元素(每個元素的大小為 size 位元組)寫入到 stream 的當前位置。

流的“位置指示器”會向前移動已寫入的總位元組數。

內部,該函式將 ptr 指向的塊解釋為大小為 (size*count)unsigned char 型別陣列,並依次將它們寫入 stream,就如同對每個位元組呼叫了 fputc 函式一樣。

引數

ptr
指向要寫入的元素陣列的指標,轉換為const void*.
size
要寫入的每個元素的大小(以位元組為單位)。
size_t 是一個無符號整數型別。
count
元素的數量,每個元素的大小為 size 位元組。
size_t 是一個無符號整數型別。
stream
指向一個 FILE 物件的指標,該物件指定一個輸出流。

返回值

返回成功寫入的元素總數。
如果此數字與 count 引數不同,則表示寫入錯誤阻止了函式完成。在這種情況下,將為 stream 設定“錯誤指示器”(ferror)。
如果 sizecount 為零,則函式返回零,並且“錯誤指示器”保持不變。
size_t 是一個無符號整數型別。

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* fwrite example : write buffer */
#include <stdio.h>

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)是陣列的長度(以位元組為單位)(在本例中為三,因為該陣列有三個位元組大小的元素)。

另見