문제 설명

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

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.

입출력 예

입력 출력
1 1 2
2 3 5
3 4 7
9 8 17
5 2 7

공부한 내용

코드 구현 첫번째 시도

#include <iostream>
using namespace std;

int main() {
    int A, B=0;

    while(true){
        cin >> A >> B;
        cout << A+B << endl;
    }

    return 0;

    // 결과: 출력 초과
}

종료조건이 없어 일단 while(true)로해서 제출했다.
역시나 결과는 “출력초과”.
검색해보니 EOF(End OF File)을 이용해서 문제를 풀어야한다고 나온다.

EOF(End OF File)

파일의 끝을 나타내는 표시로, 일반적으로 입력 스트림의 끝을 나타낸다.
C++에서는 ‘cin’을 사용하여 입력을 받을 때 EOF를 처리 할 수 있다.
사용자 입력으로 유닉스/리눅스에서는 ‘Ctrl+D’, 윈도우에서는 ‘Ctrl+Z’를 사용하여 입력의 끝을 표시한다.

코드 구현 두번째 시도

#include <iostream>
using namespace std;

int main() {
    int A, B=0;

    while(true){
        cin >> A >> B;
        if(cin.eof()){
            break;
        }
        cout << A+B << endl;
    }

    return 0;
}

결과는 통과이다.
파이썬에서는 try, except를 가지고 해결할 수 있다.