본문 바로가기
Computer Science/키워드 스터디

[EOF, End Of File] 파일 종료

by NCTP 2024. 2. 16.

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

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

백준의 10951번 문제 A+B - 4문제의 소스코드를 가져왔다.

 

C++에서 EOF를 처리할 때에는 std::cin.eof()를 사용한다. 

std::cin.eof() 는 마지막 입력에 도달했다면 true, 그렇지 않은 경우에는 false를 반환한다.

마지막 입력에 도달했을 경우 바로 코드실행을 종료하고, 계속 입력을 받을 수 있을 경우에는 동작을 계속 수행한다.

 

소스코드에서 확인했던 것처럼,

EOF는 파일의 끝에서 소스코드 동작이 끝나도록 하는 것 뿐만 아니라,

소스코드 동작의 무한루프를 탈출하는 조건 부여에도 사용될 수 있다.

 

// C에서는 파일의 끝에 도달했을 경우 EOF값을 반환하도록 되어있는데, 이 값은 -1을 나타낸다.

댓글