개념

값 하나와 한 줄 읽기

토큰 입력은 공백이나 줄바꿈을 기준으로 값을 나누어 읽습니다. 한 줄 입력은 문장 안의 공백을 포함하여 읽습니다.

동작C++JavaPython
정수 읽기cin >> nsc.nextInt()int(input())
단어 읽기cin >> ssc.next()input().split()으로 단어 분리
공백 포함 한 줄getline(cin, s)sc.nextLine()input()
두 정수 읽기cin >> a >> bnextInt() 두 번a, b = map(int, input().split())
값과 줄바꿈 출력cout << x << '\n'System.out.println(x)print(x)
두 값 사이 공백cout << a << ' ' << bSystem.out.print(a + " " + b)print(a, b)

Python의 input()은 한 줄을 읽습니다. 입력이 여러 줄에 걸쳐 있으면 줄마다 읽거나 빠른 입출력의 토큰 읽기를 사용합니다.

토큰 입력 다음에 줄 입력하기

C++의 cin >> n과 Java의 nextInt()는 숫자 뒤의 줄바꿈을 남깁니다. 바로 이어서 한 줄을 읽으면 그 줄바꿈까지의 빈 문자열을 읽을 수 있습니다.

다음 줄부터 문장을 읽는 입력 형식이라면 C++은 cin.ignore(numeric_limits<streamsize>::max(), '\n'), Java는 sc.nextLine()으로 현재 줄의 나머지를 먼저 읽습니다. 이어서 한 줄 입력을 수행합니다.

복잡도

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

연산시간복잡도공간복잡도
문자 읽기·출력O(L)O(L)한 줄 저장 시 해당 줄 길이에 비례

예제

문제

문장을 그대로 출력하고, 두 양의 정수의 합을 구하여라.

입력

첫째 줄에 영어 대문자와 공백으로 이루어진 문장이 주어진다. 길이는 11 이상 100100 이하이다.

둘째 줄에 10 00010\,000보다 작은 두 양의 정수가 공백을 사이에 두고 주어진다.

출력

첫째 줄에 문장을 그대로 출력한다. 둘째 줄에 두 수의 합을 출력한다.

예제 입력

HELLO WORLD
3 5

예제 출력

HELLO WORLD
8

예제 코드

C++20

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s;
    int a, b;

    getline(cin, s);
    cin >> a >> b;

    cout << s << '\n';
    cout << a + b << '\n';
}