-
[BOJ#11718번] 그대로 출력하기 - open(0).read(), sys.stdin.read(), for line in sys.stdin:Programming 기초/Coding Test 2023. 7. 10. 17:55
* 그대로 출력하기(11718번)
문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력
입력받은 그대로 출력한다.
1. while문 + sys.stdin.readline()
# 내 답변 import sys i = 1 while i <= 100: print(sys.stdin.readline(), end="") i += 1
2. for line in sys.stdin:
import sys for line in sys.stdin: print(line, end="")
sys.stdin은 open(0)로 대체가능하다.
for line in open(0): print(line, end="")
3. sys.stdin.read()
import sys print(sys.stdin.read())
1. read(): (default) 파일 내용 전체를 가져와 문자열로 반환
▶ list의 pop()과 비슷하게 함수 사용 때마다 결과를 불러오고 불러온 데이터 폐기
▶ 불러올 데이터가 없을 시 빈 문자열 출력
▶ 불러올 문자열의 크기를 인자로 줄 수 있음.입력하지 않을 경우 파일 전체 문자열을 불러옴
2. readline(): 함수의 구동 방식은 read()와 흡사. 하지만 size 지정이 없음. 파일의 한 줄을 가져와 문자열로 반환. 파일 포인터는 다음 줄로 이동
3. readlines(): 파일 전체 내용을 가져와 리스트로 반환. 각 줄은 문자열 형태로 리스트 요소에 저장
▶ list(f) 와 f.readlines() 는 거의 동등함4. open(0).read()
print(open(0).read())
open(0).read()는 sys.stdin.read()와 같다.
일반적으로 open() 함수는 파일 경로나 파일명을 첫 번째 인자로 받습니다. 예를 들어, open("file.txt")는 "file.txt"라는 파일을 열고 해당 파일의 핸들을 반환합니다. 그러나 open() 함수에 정수 0을 인자로 전달하면, 표준 입력(stdin)에 대한 파일 핸들을 반환합니다. 즉, open(0)은 표준 입력을 열어서 해당 파일의 핸들을 반환하는 것을 의미합니다.
파일 핸들을 나타내는 정수는 파일 시스템이나 운영 체제에서 파일에 접근하기 위해 사용되는 값입니다. 파일 핸들은 일반적으로 정수로 표현되며, 다양한 운영 체제에서 고유한 값을 갖습니다. 여기에는 몇 가지 일반적인 파일 핸들의 종류가 있습니다:
1. 표준 입력(stdin) 핸들: 일반적으로 정수 0으로 표현됩니다. 표준 입력은 프로그램에 의해 사용자로부터의 입력을 받는 데 사용됩니다.
2. 표준 출력(stdout) 핸들: 일반적으로 정수 1로 표현됩니다. 표준 출력은 프로그램의 결과를 사용자에게 출력하는 데 사용됩니다.
3. 표준 오류(stderr) 핸들: 일반적으로 정수 2로 표현됩니다. 표준 오류는 프로그램에서 발생하는 오류 메시지를 출력하는 데 사용됩니다.파일 핸들: 파일을 열고 해당 파일에 접근하기 위해 운영 체제에서 할당하는 정수 값입니다. 4. 파일 핸들은 open() 함수 또는 유사한 함수를 통해 생성될 수 있으며, 파일을 읽거나 쓰는 등의 작업을 수행하는 데 사용됩니다. 파일 핸들은 각각 고유한 값을 갖습니다.
이러한 파일 핸들은 운영 체제 수준에서 파일 시스템에 접근하기 위해 사용되며, 개발자가 파일을 열고 사용하는 데 필요한 중간 인터페이스 역할을 합니다.
출처 : Chat GPT* 참고
https://it-neicebee.tistory.com/118
https://www.acmicpc.net/board/view/59815
https://stackoverflow.com/questions/53898231/integer-file-descriptor-0-in-open
'Programming 기초 > Coding Test' 카테고리의 다른 글
[BOJ#2444번] range의 역순 : range(n,0,-1), range(n)[::-1] (0) 2023.07.12 [BOJ#3003번] list(zip()), 두 리스트의 원소를 순서대로 짝을 맞춰 엮는 방법 (0) 2023.07.11 [BOJ#2908번] map(int, input()[::-1].split()), 입력값의 역수 저장하기, max()함수 문법 (0) 2023.07.10 [BOJ#1152번] 문자열에서 단어 개수 세기. count()함수, len()함수, split(' ')와 split()의 차이 (0) 2023.07.09 [BOJ#2675번] list내의 str타입의 요소 붙여서 출력하기. (0) 2023.07.07