Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語でファイルの内容を読み込んで表示する方法

C言語では、fopenfgetc を組み合わせることで、テキストファイルの内容を1文字ずつ読み込み、画面に表示することができます。この記事では、具体的なサンプルコードとその実行結果をもとに、手順をわかりやすく解説します。

例で使用するファイル

まず、次のような内容が書かれた「new.txt」というテキストファイルを用意します。

0,hell!o
1,hello!
2,gfdtrhtrhrt
3,demo

サンプルプログラム

このファイルの内容を読み込んで表示するC言語のプログラムは以下の通りです。

#include <stdio.h>

int main(void) {
    FILE *f;
    int c;

    /* ファイルを読み込みモードで開く */
    f = fopen("new.txt", "r");
    if (f == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }

    /* 1文字ずつ読み込んで表示 */
    while ((c = fgetc(f)) != EOF) {
        printf("%c", c);
    }

    fclose(f);
    return 0;
}

実行結果

0,hell!o
1,hello!
2,gfdtrhtrhrt
3,demo

プログラムの解説

  • FILE *f; … ファイルを操作するためのファイルポインタを宣言します。
  • fopen("new.txt", "r") … 「new.txt」を読み込みモード("r")で開きます。失敗した場合は NULL が返されるため、必ずチェックしましょう。
  • fgetc(f) … ファイルから1文字ずつ読み込みます。ファイルの終端に達すると EOF を返すので、while文でこの条件を使ってループを制御しています。
  • fclose(f) … 読み込みが完了したらファイルを閉じてリソースを解放します。

注意点:fgetcの戻り値はint型で受け取る

fgetc の戻り値は int 型です。char 型の変数で受け取ると、EOF(多くの環境では -1)との比較が正しく行えず、無限ループや誤動作の原因になることがあります。そのため、上記のように int 型の変数で受け取るのが安全で推奨される書き方です。

また、古い教材では conio.h のインクルードや clrscr()getch() といった関数が使われることがありますが、これらはTurbo Cなど旧式のコンパイラ固有のものであり、GCCやClangなどの標準的な開発環境では不要です。

  1. PythonでJSONファイルを見やすく整形表示(プリティプリント)する方法

    Pythonは、他の多くのプログラミング言語と同様に、JavaScript Object Notation(JSON)データをスムーズに扱うことができます。さまざまなソースからJSONデータを取り込み、他のファイルと同じように操作できるため、JSONファイルを読みやすい形で整形表示(プリティプリント)したい場合に非常に便利です。 この記事では、PythonでJSONファイルをプリティプリントする2つの方法をご紹介します。どちらの方法もターミナルとコマンドラインを使用しますが、そのうち1つはPythonの知識がまったく不要です。 プリティプリントとは?(JSONファイルで使う理由) 簡単に言え

  2. Windowsでファイルの中身(内容)を検索する方法|インデックス設定で任意の拡張子を対応させる手順

    Windows Searchでファイルの中身を検索できる仕組み Windows Searchは、ファイル名やメタデータをもとにファイルを素早く見つけられる、Windows標準搭載の検索機能です。単なる名前検索にとどまらず、検索条件を細かく絞り込める強力なツールでもあります。さらにWindows Searchは、ファイルのプロパティ(メタデータ)だけでなく、ファイルの「内容」もインデックス化しています。そのため、ファイル内に含まれる特定の単語やフレーズをキーワードとして検索することも可能です。 注意点:すべてのファイル形式が内容インデックスの対象ではない ただし、Windows Searchが内