GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::fread - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. cstdio
  3. fread

最終更新日時: 2026年08月18日 02時57分44秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<cstdio>

std::fread

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

概要

ファイルからcount文字のsizeバイトのデータを読み込む。

ファイル内の位置は、読み取られたバイトだけ進む。

要件

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

戻り値

正常に読み込むことのできた項目の数を返す。

sizeまたはcountのいずれかが0だった場合、必ず0を返し、bufferは変更されない。

効果

streamからcount個のsizeバイトのデータを読み込む。

読み込んだデータは、bufferが指すメモリの先頭から順に格納される。

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

例

#include <cstdio>

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

  char buffer[100];
  /*
  厳密には、sizeof(char)は1バイトであることが保証されているため、
  sizeof(buffer) / sizeof(char)は、bufferの要素数と等しくなる。
  */
  std::size_t count = std::fread(buffer, sizeof(char), sizeof(buffer) / sizeof(char), file);
  std::printf("読み込んだデータの長さ: %zu\n", count);

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

ファイル内容(sample.txt)

Hello, World!

出力例

読み込んだデータの長さ: 14

処理系

  • Clang: ??
  • GCC: ??
  • Visual C++: ??

参照

  • sizeof演算子にまつわるアレコレ
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.