❤恋するコンピュータサイエンス❤

コンピュータサイエンス、3DCGをもっと楽しく、もっと本質的に!c言語、c++の記事中心です

EOF とはなにか?

 

Q.

EOFとは何か?

 

 

A

EOFとは "End of File" の略で、ファイルの終わりを示すマーカーまたは特殊な状態を意味します。これは、ファイルの読み取りを行っているプログラムが、これ以上読み取るデータがないことを認識するために使用されます。

C言語では、readfreadなどのファイル読み取り関数がファイルの終わりに達すると、EOFを返すことがあります。このEOFは通常、-1として表されます。

なお、EOFはファイルの終端に達したことだけでなく、エラーが発生した場合にも返されることがあります。そのため、ファイルの終わりに達したのか、それともエラーが発生したのかを判断するためには、通常は追加のエラーチェックを行う必要があります。

また、ファイルを文字単位で読み取る場合の getcfgetc 関数でも、ファイルの終わりに達した場合にはEOFが返されます。これらの関数の場合、EOFは通常、整数値の-1として表されます。

以下は、典型的な入力ループの例です:

c
Copy code
int c;
while *1 != EOF) {
    // 文字の処理
}
この例では、getchar()から返される値がEOFでない限り、ループが継続されます。EOFが返されると、ループが終了します。

ただし、EOFの値が必ずしも-1であるとは限りません。具体的な値は処理系やプラットフォームに依存しますので、プログラム中でEOFの値を直接比較する代わりに、<stdio.h>ヘッダーで提供されるEOFの定義を使用することをおすすめします。

*1:c = getchar(