개념

입력의 끝까지 읽기

EOF는 입력 데이터의 끝을 나타냅니다. 데이터 개수가 따로 주어지지 않는 문제에서는 다음 입력값이 있는 동안 계속 읽어 처리합니다.

동작C++JavaPython
토큰 입력 성공 확인while (cin >> a >> b)sc.hasNextInt()전체 입력을 읽어 토큰 순회
줄 단위 EOF 확인while (getline(cin, s))br.readLine()이 null인지 확인for line in sys.stdin

마지막 줄에 줄바꿈이 없어도 그 줄의 데이터는 읽을 수 있습니다. 빈 줄은 줄 단위 입력에서 길이가 00인 문자열로 읽히며, EOF와 구분됩니다. 공백 단위로 값을 읽으면 빈 줄도 공백으로 처리합니다.

복잡도

입력 전체 문자 수를 LL이라고 합니다.

연산시간복잡도공간복잡도
EOF까지 순회O(L)O(L)토큰 단위 누적 O(1)O(1), 줄 단위 처리는 최대 줄 길이에 비례

예제

문제

입력 끝까지 주어지는 두 수의 합을 각각 구하여라.

입력

입력이 끝날 때까지 각 데이터 줄에 10 00010\,000보다 작은 두 양의 정수가 공백을 사이에 두고 주어진다. 데이터 줄은 11개 이상 100100개 이하이다. 줄 사이에 빈 줄이 있을 수 있다.

출력

각 데이터 줄의 두 수의 합을 한 줄씩 출력한다.

예제 입력

1 2
3 4
5 6

예제 출력

3
7
11

예제 코드

C++20

#include <iostream>

using namespace std;

int main() {
    int a, b;

    while (cin >> a >> b) {
        cout << a + b << '\n';
    }
}