C言語でファイルの内容を読み込んで表示する方法
C言語では、fopen と fgetc を組み合わせることで、テキストファイルの内容を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などの標準的な開発環境では不要です。
-
PythonでJSONファイルを見やすく整形表示(プリティプリント)する方法
Pythonは、他の多くのプログラミング言語と同様に、JavaScript Object Notation(JSON)データをスムーズに扱うことができます。さまざまなソースからJSONデータを取り込み、他のファイルと同じように操作できるため、JSONファイルを読みやすい形で整形表示(プリティプリント)したい場合に非常に便利です。 この記事では、PythonでJSONファイルをプリティプリントする2つの方法をご紹介します。どちらの方法もターミナルとコマンドラインを使用しますが、そのうち1つはPythonの知識がまったく不要です。 プリティプリントとは?(JSONファイルで使う理由) 簡単に言え
-
Windowsでファイルの中身(内容)を検索する方法|インデックス設定で任意の拡張子を対応させる手順
Windows Searchでファイルの中身を検索できる仕組み Windows Searchは、ファイル名やメタデータをもとにファイルを素早く見つけられる、Windows標準搭載の検索機能です。単なる名前検索にとどまらず、検索条件を細かく絞り込める強力なツールでもあります。さらにWindows Searchは、ファイルのプロパティ(メタデータ)だけでなく、ファイルの「内容」もインデックス化しています。そのため、ファイル内に含まれる特定の単語やフレーズをキーワードとして検索することも可能です。 注意点:すべてのファイル形式が内容インデックスの対象ではない ただし、Windows Searchが内