當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ fwrite()用法及代碼示例


C++ 中的fwrite() 函數將指定數量的字符寫入給定的輸出流。

fwrite()原型

size_t fwrite(const void * buffer, size_t size, size_t count, FILE * stream);

fwrite() 函數將 count 個對象寫入給定的輸出流,每個對象的大小為 size 個字節。

它類似於調用fputc() size 次來寫入每個對象。根據寫入的字符數,文件位置指示器遞增。如果在讀取文件時發生任何錯誤,則流的文件位置指示符的結果值是不確定的。

  • 如果對象不是一般可複製的,則行為未定義。
  • 如果大小或計數為零,則對fwrite 的調用將返回零並且不執行其他操作。

它在<cstdio> 頭文件中定義。

參數:

  • buffer :指向其內容被寫入的內存塊的指針。
  • size:每個對象的大小(以字節為單位)。
  • count :要讀取的對象數。
  • stream :要寫入數據的文件流。

返回:

fwrite() 函數返回成功讀取的對象數。如果發生錯誤,返回值可能小於 count。

示例 1:fwrite() 函數的工作原理

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int retVal;
    FILE *fp;
    char buffer[] = "Writing to a file using fwrite.";

    fp = fopen("data.txt","w");
    retVal = fwrite(buffer,sizeof(buffer),1,fp);
    
    cout << "fwrite returned " << retVal;
    return 0;
}

當您運行程序時,緩衝區的內容將被寫入文件,輸出將是:

fwrite returned 1

示例 2:當計數或大小為零時 fwrite() 函數如何工作

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int retVal;
    FILE *fp;
    char buffer[] = "Writing to a file using fwrite.";

    fp = fopen("myfile.txt","w");
    
    retVal = fwrite(buffer,sizeof(buffer),0,fp);
    cout << "When count = 0, fwrite returned " << retVal << endl;
    
    retVal = fwrite(buffer,0,1,fp);
    cout << "When size = 0, fwrite returned " << retVal << endl;
    
    return 0;
}

運行程序時,輸出將是:

When count = 0, fwrite returned 0
When size = 0, fwrite returned 0

相關用法


注:本文由純淨天空篩選整理自 C++ fwrite()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。