当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。