最終更新日時(UTC):
が更新

履歴 編集

function
<cstdio>

std::fwrite

namespace std {
  size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream);
}

概要

ストリームにcount個のsizeバイトの要素を書き込む。

ストリーム内の位置は、書き込まれたバイトだけ進む。

書き込み時にエラーが発生した場合、ストリーム内の位置は不定である。

また、書き込みには内部的にfputcを使用する。

要件

  • bufferは有効なポインタであること。
  • streamは有効なファイルストリームであること。
  • bufferが指すメモリ領域とstreamが指すファイルストリームの内部バッファが重複していないこと。

戻り値

正常に書き込むことのできた要素の数を返す。

効果

bufferが指すメモリからcount個のsizeバイトの要素をstreamに書き込む。

書き込みエラーが生じなければ、書き込むデータの大きさはcount * sizeバイトである。

#include <cstdio>

int main() {
  std::FILE *file = std::fopen("output.txt", "w");
  if (!file) {
    std::perror("ファイルを開けませんでした");
    return 1;
  }

  const char data[] = "Hello, World!\n";
  /*
  厳密には、sizeof(char)は1バイトであることが保証されているため、
  sizeof(data) - 1は、文字列の長さ(ヌル終端文字を除く)と等しくなる。
  */
  std::size_t count = std::fwrite(data, sizeof(char), sizeof(data) - 1, file);
  std::printf("書き込んだデータの長さ: %zu\n", count);

  std::fclose(file);
  return 0;
}

出力例

書き込んだデータの長さ: 13

ファイル出力(output.txt)

Hello, World!

処理系