(1) EOF(End of File)은 데이터의 입력이 없으면 실행을 끝낸다는 뜻의 상수이다.
<stdio.h> 파일에 #define EOF (-1)라고 정의되어 있다.
표준 입출력 스트림 중에서도 파일을 입출력하고자 할 때
파일의 위치를 알기 위해 FILE 포인터로 파일에 접근하여 파일 데이터를 읽고 쓰기가 가능하다.
이 때 파일을 읽다가 파일의 끝을 만나면 EOF 값을 반환하고 데이터를 더이상 읽지 않는다.
(2) 파일의 끝일 때 뿐만 아니라 키보드 입력의 끝을 알려줄 수도 있다.
키보드로 EOF를 실행하려면 윈도우 운영체제는 Ctrl + z 누르고 enter 키를 치면
EOF가 -1을 반환하고 키보드 입력을 더이상 받지 않는다.
(3) 백준 10951번
#include <stdio.h>
int main(int argc, char *argv[]) {
int x, y;
while(scanf("%d %d", &x, &y) != EOF){
printf("%d\n", x+y);
}
return 0;
}
- 백준 10951번 문제 관련해서는 아래 블로그 참고하면 좋을 것 같다.
더보기
- EOF은 c에서는 파일 입출력 때 배웠던 기억이 있다.
scanf에서 EOF를 보니까 또 신기하네.. 아직 배울 게 많다! 너무 좋아!
- https://kldp.org/node/101962 (이런 글도 있네..)
C에서 파일끝을 어떤식으로판별하는지요? (ps. EOF의 개념이..) | KLDP
파일을 읽어올때면 당연히 EOF를 쓰긴 했는데요 while(fgetc(FILE)!= EOF) 대충이런식으로 막상 어떤식으로 판별되는지 개념없이 쓰고 있어서 질문드려요 파일에끝에 항상 EOF or -1이 들어가 있는것은
kldp.org
'백준 BOJ' 카테고리의 다른 글
[백준 1157번] 단어공부 (c언어) (0) | 2023.02.02 |
---|