C言語でファイルをどのように読み込むか教えてください

C言語でファイルをオープンして読み込むには`fopen`, `fread`などの標準ライブラリ関数を使用する

まず、fopen 関数を使用してファイルを開き、後続のファイル読み取り操作的参数となる FILE 構造体を指すポインタを返します。fopen 関数のプロトタイプは次のとおりです。

FILE *fopen(const char *filename, const char *mode);

ファイル名は開くファイルの名前で相対パスまたは絶対パス、modeはファイルを開くモードでよく使われるモードは次のとおりです。

  1. 「r」: ファイルをよみだすモードでファイルをオープンする
  2. 「w」:書き込みモードでファイルを開く。ファイルがすでに存在している場合はファイルを切断し、ファイルが存在しない場合はファイルを作成する
  3. 「a」ファイル追記モードでファイルを開く。ファイルが存在しない場合は作成する。
  4. 「rb」:ファイルをバイナリモードで読み取り専用で開く
  5. ファイルをバイナリ書き込みモードで開く
  6. 「ab」: 2進数追加書き込みモードでファイルを開く

ファイルを開いた後、fread 関数を使用してファイルの内容を読み取ることができます。fread 関数のプロトタイプは次のようになります。

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

ptr:読み込んだデータを格納するバッファを指すポインタ、size:要素ごとのサイズ(バイト単位)、count:読み込む要素の数、stream:FILE構造体を指すポインタ

ファイルの内容を読み込む方法を示すサンプルコードを以下に示します。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r"); // 打开example.txt文件,以只读方式打开

    if (file == NULL) {
        printf("无法打开文件\n");
        return 0;
    }

    char buffer[100]; // 设置一个缓冲区,用于存储读取的数据
    size_t count = fread(buffer, sizeof(char), sizeof(buffer), file); // 读取文件内容到缓冲区

    for (int i = 0; i < count; i++) {
        printf("%c", buffer[i]); // 输出缓冲区中的内容
    }

    fclose(file); // 关闭文件

    return 0;
}

上記のコードでは、最初にファイルを開くためにfopen関数を使用しています。ファイルのオープンが成功すれば、fread関数を使用してファイルの中身をバッファbufferに読み込み、ループによってバッファの中身をアウトプットしています。最後に、fclose関数でファイルをクローズしています。

ファイルを読み込む際には、バッファサイズが十分な大きさであることを確認してオーバーフローしないように注意してください。さらに、ファイル操作の完了後にはファイルを閉じてリソースを解放する必要があります。

bannerAds