😸

[C] fread 関数

に公開

機能

ファイルからデータをバイナリ単位で読み込む関数[1]

使用例

バッファ内: Hello と表示する

\n は改行を表す エスケープシーケンス[2]

コード

FILE *fp = fopen("sample.txt", "rb");
char buf[10];
size_t n = fread(buf, 1, 5, fp); // 5バイト読み込み
buf[n] = '\0';
printf("バッファ内: %s", buf);
fclose(fp);
全文
#include <stdio.h>
void main() {
    FILE *fp = fopen("sample.txt", "rb");
    char buf[10];
    size_t n = fread(buf, 1, 5, fp);
    buf[n] = '\0';
    printf("バッファ内: %s", buf);
    fclose(fp);
}

実行結果

バッファ内: Hello

ファイルから整数配列を読み込む

コード

FILE *fp = fopen("sample.bin", "rb");
int arr[3];
fread(arr, sizeof(int), 3, fp); // 3つのint型を読み込む
for (int i = 0; i < 3; i++) {
    printf("%d\n", arr[i]);
}
fclose(fp);
全文
#include <stdio.h>
void main() {
    FILE *fp = fopen("sample.bin", "rb");
    int arr[3];
    fread(arr, sizeof(int), 3, fp);
    for (int i = 0; i < 3; i++) {
        printf("%d\n", arr[i]);
    }
    fclose(fp);
}

実行結果

10
20
30
脚注
  1. バイナリファイルなどの内容を指定したサイズ・個数だけ配列等に読み込みます。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion