🔧 入出力 ・ stdio.h ・ C89
fread の使い方size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
ストリームから固定サイズのデータブロックを複数個読み込む。バイナリファイルの読み込みに使い、戻り値は実際に読み込めた要素数で、要求数より少ない場合はEOFかエラーを意味する。 読み込んだバイト列をそのまま構造体へキャストする場合は、処理系依存のバイト順やパディングに注意する。
#include <stdio.h>
int main(void) {
FILE *fp = fopen("data.bin", "rb");
int buf[4];
if (fp) {
size_t n = fread(buf, sizeof(int), 4, fp);
printf("read %zu items\n", n);
fclose(fp);
}
return 0;
}
⚠️ 戻り値が要求した個数より少ない場合、feof/ferrorで原因(終端かエラーか)を区別する必要がある。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
fread と一緒に使う関数fclose
feof
ferror
fflush
fgetc
fgets
fopen
fprintf
fputc
fputs
fscanf
fseek
ftell
fwrite
getchar
gets_s
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。