[boj][c++] 10951 A+B-4-

ppparkta·2022년 10월 31일
1

Problem solving

목록 보기
47/65

10951 A+B-4-


알고리즘은 생각할 필요도 없이 간단한 문제이지만 c++에서 eof에 대한 개념을 처음 접해서 정리해본다. (c에서 read해본 경험만 있었음)

이 문제는 입력의 끝을 알 수 없다는 특징이 있다. 이런 경우 입력 스트림의 끝을 입력의 끝으로 봐야 하는데 이 때 EOF(end of file)을 확인하면 된다.

1234(eof)와 같은 파일이 들어왔을 때 입력스트림의 상태는 다음과 같다.

readbool
1false
2false
3false
4false
(EOF)true

파일을 한번 읽은 뒤에 다시 입력스트림에 접근하려고 할 때 EOF라면 true를 반환하게 된다. 즉 값의 끝인 4에 도달했다고 true인게 아니라 그 다음에 다시 접근하려고 할 때 true를 반환하는 것이다.

cin 입력 스트림에서 eof를 발생시키려면 eof() 를 사용하면 된다.
cin.eof()로 boolean값을 확인할 수 있다.

다시 정리하면 eof를 올바르게 사용하기 위해 우리가 원하는 값을 읽은 뒤에 eof를 시도해야 하는 것이다.

따라서 아래의 식은 ab 변수를 입력스트림으로 읽은 뒤에 eof를 실행한다.

싱글벙글

#include <iostream>
using namespace std;

int main(){
    int a,b;
    while(!(cin>>a>>b).eof()){
        cout<<a+b<<'\n';
    }
    return 0;
}
profile
겉촉속촉

0개의 댓글