[문제 내용]
입력 받은 대로 출력하는 프로그램을 작성하시오.
[입력]
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.
[출력]
입력받은 그대로 출력한다.
[입출력 예]
import sys
i = sys.stdin.read()
print(i, end="")
input()
이용해서 하면 되는게 아닌가? 문제가 너무 쉽다고 생각했는데, 알고보니 input()
은 한 줄만 입력받기 때문에 여러 줄의 입력을 처리할 수 없다고 한다. (!!!)
sys.stdin.read()
는 표준 입력에서 모든 내용을 읽는다.
end=""
는 출력 후 줄바꿈을 없애고 빈 문자열을 대신 추가한다. print()
는 기본적으로 출력 후에 줄바꿈을 수행하기 때문이다.
while True:
try:
# 한 줄씩 입력받고 그대로 출력
s = input()
print(s)
except EOFError:
break # 더 이상 입력이 없으면 종료
더이상 입력할 내용이 없는데 추가로 입력을 하면 EOFError가 발생한다. End Of File은 입력의 끝을 만났을 때 발생하는 오류다. while
문에서는 해당 처리를 하지 않으면 프로그램이 중단되면서 오류가 발생한다.