😸
[C] feof 関数
機能
ファイルの終端 (EOF) に達したかどうかを判定する関数[1]
使用例
ファイルの終端です
と表示する
\n
は改行を表す エスケープシーケンス[2]
コード
FILE *fp = fopen("test.txt", "r");
if (fp) {
// ファイルの先頭では feof(fp) は 0
while (!feof(fp)) {
int c = fgetc(fp);
if (c == EOF) {
if (feof(fp)) {
printf("ファイルの終端です\n");
}
break;
}
}
fclose(fp);
}
全文
#include <stdio.h>
void main() {
FILE *fp = fopen("test.txt", "r");
if (fp) {
// ファイルの先頭では feof(fp) は 0
while (!feof(fp)) {
int c = fgetc(fp);
if (c == EOF) {
if (feof(fp)) {
printf("ファイルの終端です\n");
}
break;
}
}
fclose(fp);
}
}
実行結果
ファイルの終端です
EOF に到達しました
を変数から表示する
コード
FILE *fp = fopen("test.txt", "r");
char msg[] = "EOF に到達しました\n";
if (fp) {
while (fgetc(fp) != EOF);
if (feof(fp)) {
printf("%s", msg);
}
fclose(fp);
}
全文
#include <stdio.h>
void main() {
FILE *fp = fopen("test.txt", "r");
char msg[] = "EOF に到達しました\n";
if (fp) {
while (fgetc(fp) != EOF);
if (feof(fp)) {
printf("%s", msg);
}
fclose(fp);
}
}
実行結果
EOF に到達しました
Discussion