C언어 \ C++
[C언어] C언어에서 EOF란? (C언어 파일 종료 코드)
안산드레아스
2022. 2. 22. 11:15
반응형
EOF란? End of File의 약어로, "파일의 끝을 표현한 상수로 -1 값을 지칭"
즉, 파일을 대상으로 fgetc (읽기함수)가 호출되었을 때 그 파일의 끝에 도달하면 EOF (= -1)이 반환되어 끝을 알린다.
만약 fgetc(stdin) 으로 키보드를 입력장치로 콘솔, 터미널에서 입력을 받을 때,
Windows에서는 "Ctrl+Z"키
Linux에서는 "Ctrl+D"키
를 입력받을 때 EOF를 반환한다.
반응형
예시)
아래 코드는 키보드를 입력하면 똑같이 echo하는 코드이다. 그러나 만약 유저가 Ctrl+Z키를 누르면 콘솔이 종료된다.
만약 리눅스에서 실행한다면, Ctrl+D를 눌러야 종료된다.
#include <stdio.h>
int main()
{
int ch;
while (1)
{
// 키보드로부터 입력받음
ch = getchar();
if (ch == EOF)
{
break;
}
putchar(ch);
}
return 0;
}
(결과)
입력한 결과가 그대로 echo된다. 그리고 Ctrl+Z를 누르면 콘솔에서 (^Z)로 표시되며 종료된다.
반응형