C言語のEOF・getc()・feof()の使い方を徹底解説
EOFとは
EOFは「End Of File(ファイルの終端)」の略で、C言語ではファイルの終わりに達したことを示す特別な値として定義されています。getc()関数は、ファイルの終端に達したときや読み込みに失敗したときにEOFを返します。
ここからは、C言語におけるEOFの具体的な使い方をサンプルコードとともに見ていきましょう。
まず、次の内容が書かれた「new.txt」というテキストファイルを用意します。
This is demo! This is demo!
このファイルを読み込むサンプルプログラムがこちらです。
サンプルプログラム
#include <stdio.h>
int main() {
FILE *f = fopen("new.txt", "r");
int c = getc(f);
while (c != EOF) {
putchar(c);
c = getc(f);
}
fclose(f);
getchar();
return 0;
}実行結果
This is demo! This is demo!
このプログラムでは、まずfopen()関数でファイルを読み込みモードで開きます。そして、整数型変数cがEOFではない間、whileループによってファイルの内容を1文字ずつ読み出して画面に表示します。
FILE *f = fopen("new.txt", "r");
int c = getc(f);
while (c != EOF) {
putchar(c);
c = getc(f);
}getc()関数とは
getc()関数は、入力ストリームから1文字を読み取り、その文字コードを整数値(int型)として返します。ファイルの終端に達した場合や読み込みエラーが発生した場合には、EOFを返します。
C言語におけるgetc()関数の構文は以下の通りです。
int getc(FILE *stream);
引数streamには、読み込み対象となるファイルストリームへのポインタを指定します。
先ほどと同じ「new.txt」ファイルを使って、getc()関数の動作を確認してみましょう。
サンプルプログラム
#include <stdio.h>
int main() {
FILE *f = fopen("new.txt", "r");
int c = getc(f);
while (c != EOF) {
putchar(c);
c = getc(f);
}
fclose(f);
getchar();
return 0;
}実行結果
This is demo! This is demo!
fopen()でファイルを開いた後、変数cがEOFでない間はファイルを読み続けます。このように、getc()関数はファイルから1文字ずつ順番に文字を読み取る役割を担っています。
feof()関数とは
feof()関数は、EOFに達した後、ファイル終端インジケータ(end-of-file indicator)を調べるために使用します。ファイルポインタが本当にファイルの終端まで到達したかどうかを確認でき、終端に達していれば0以外の値を、そうでなければ0を返します。
C言語におけるfeof()関数の構文は以下の通りです。
int feof(FILE *stream);
同じく「new.txt」ファイルを使って、feof()関数の使い方を見ていきましょう。
サンプルプログラム
#include <stdio.h>
int main() {
FILE *f = fopen("new.txt", "r");
int c = getc(f);
while (c != EOF) {
putchar(c);
c = getc(f);
}
if (feof(f))
printf("\nファイルの終端に到達しました。");
else
printf("\n読み込みに失敗しました。");
fclose(f);
getchar();
return 0;
}実行結果
This is demo! This is demo! ファイルの終端に到達しました。
このプログラムでは、fopen()でファイルを開き、変数cがEOFになるまでgetc()で読み込みを行います。その後、feof()関数を呼び出して、ファイルポインタが本当にファイルの終端に到達したかどうかを再度チェックしています。
if (feof(f))
printf("\nファイルの終端に到達しました。");
else
printf("\n読み込みに失敗しました。");まとめ
EOFはファイルの終端を表す値であり、getc()はストリームから1文字を読み込む関数、feof()はファイル終端インジケータを確認する関数です。これらを組み合わせることで、ファイルの内容を安全かつ確実に最後まで読み取ることができます。
-
GZファイルとは?Windows・Mac・Linuxでの開き方・解凍方法を徹底解説
GZファイルを受け取ったものの、開き方がわからずお困りではありませんか?この記事では、GZファイルの基本知識と、Windows・Mac・Linuxそれぞれの環境での解凍方法をわかりやすく解説します。主要なOSであれば、GZファイルの中身を確認するのはとても簡単です。やり方もいくつかあるので、自分に合った方法を選べます。GZファイルとは?GZファイルとは、gzipという圧縮技術を使って圧縮されたアーカイブファイルのことです。他のアーカイブ形式と同様に、複数のファイルを1つにまとめたり、圧縮によってファイルサイズを小さくしたりする目的で使用されます。RARやZIPと同じように、GZファイルはOS標
-
JNLPファイルとは?Java Web Startやテキストエディタでの正しい開き方を解説
独自の拡張子を持つすべてのファイルは、それを実行するアプリケーションと関連付けられています。Javaに不慣れな方や学び始めたばかりの方の中には、一部のファイル拡張子についてご存じない方も多いでしょう。「.jnlpファイルとは何か」「どうやって開けばいいのか」と疑問に思うユーザーは少なくありません。また、JNLPファイルが誤って別のアプリケーションに関連付けられ、正しく開けなくなるケースもあります。この記事では、JNLPファイルの概要と、その具体的な開き方について詳しく解説します。JNLPファイルとは?JNLP(Java Network Launch Protocol)は、Webやネットワーク経