[C++] 백준 #11718 : 그대로 출력하기

1174 단어 기본기백준psps

문제 설명

입력 받은 대로 출력하는 프로그램을 작성하시오.

입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

출력

입력받은 그대로 출력한다.

피드백

특정한 알고리즘이 없는 문제이다. 바로 피드백으로 넘어가겠다.

문제만 보면 굉장히 쉬워보이지만, 입력 종료 조건이 주어지지 않아 헷갈렸던 문제이다.
EOF 처리에 대해 배울 수 있던 문제이다.

그동안 문제를 풀 땐 무지성(?) cin으로 받아 cout으로 출력했지만,
이와 같이 EOF가 따로 주어지지 않는 문제는 직접 조건문을 이용해 EOF처리를 해주어야 한다.
다양한 방법이 있지만 나는 아래와 같이 처리했다.

getline(cin, input);
		if (input == "")
			return 0;

한 줄씩 입력을 cin(키보드 입력)으로 받아 그 내용을 string 형태의 변수인 input에 저장한다. 그리고 input의 값이 없다면, EOF라고 판단하고 프로그램을 그대로 종료하도록 했다. 전체 소스코드는 아래와 같다.

소스코드

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	
	string input;

	while (1)
	{
		getline(cin, input);
		if (input == "")
			return 0;

		cout << input << "\n";
	}
	
	return 0;
}

좋은 웹페이지 즐겨찾기