EOF는 말 그대로, 파일의 끝(End of file)을 나타낸다.
파일에 더이상 읽어들일 데이터가 없다는 의미이며,
파일 뿐만 아니라, 입력의 끝을 알리는 신호로 사용된다.
EOF의 입력 방법은
- 윈도우 : Crtl + Z
- Mac / Unix / Linux... : Crtl + D
이다.
예시 소스코드의 동작을 살펴보자.
#include <iostream>
int main()
{
int a, b;
while (true)
{
std::cin >> a >> b;
if (std::cin.eof()) break;
else std::cout << a + b << '\n';
}
return 0;
}
https://www.acmicpc.net/problem/10951
백준의 10951번 문제 A+B - 4문제의 소스코드를 가져왔다.
C++에서 EOF를 처리할 때에는 std::cin.eof()를 사용한다.
std::cin.eof() 는 마지막 입력에 도달했다면 true, 그렇지 않은 경우에는 false를 반환한다.
마지막 입력에 도달했을 경우 바로 코드실행을 종료하고, 계속 입력을 받을 수 있을 경우에는 동작을 계속 수행한다.
소스코드에서 확인했던 것처럼,
EOF는 파일의 끝에서 소스코드 동작이 끝나도록 하는 것 뿐만 아니라,
소스코드 동작의 무한루프를 탈출하는 조건 부여에도 사용될 수 있다.
// C에서는 파일의 끝에 도달했을 경우 EOF값을 반환하도록 되어있는데, 이 값은 -1을 나타낸다.
'Computer Science > 키워드 스터디' 카테고리의 다른 글
[Memory Views and Copies in Numpy] Numpy 기본기. (0) | 2024.04.16 |
---|---|
[에라토스테네스의 체] 소수를 구하는 알고리즘 (1) | 2024.02.11 |
댓글