백준 10951번 문제에서 핵심 포인트는 테스트케이스가 주어지지 않은 경우
이다. 이 문제를 푸는 핵심은 EOF(End Of File)
를 아는 것이다. 지금부터 EOF
에 대해 알아보자.
: 파일의 끝을 알리는 함수로 -1의 값을 가지며, 콘솔 창에서는 Ctrl+Z 가 EOF
를 의미한다.
C++에서는 cin.eof()
함수가 bool 타입을 가지며 EOF를 읽으면 true값으로 변경된다.
[풀이 1]
#include<iostream>
using namespace std;
int main(void)
{
cin.tie(NULL); ios_base::sync_with_stdio(false);
int a,b;
while(1)
{
cin>>a>>b;
if(cin.eof()==true) break;
cout<<a+b<<"\n";
}
return 0;
}
while문의 조건 안에 cin함수를 넣으면 정상적인 입력이 아닐 경우 자동적으로 종료되게 할 수 있다.
[풀이 2]
#include<iostream>
using namespace std;
int main(void)
{
cin.tie(NULL); ios_base::sync_with_stdio(false);
int a,b;
while(cin>>a>>b)
{
cout<<a+b<<"\n";
}
return 0;
}