문자 입출력
문자 입출력
텍스트 스트림에 단일 문자 또는 문자 코드를 입출력하는 내장 술어들을 설명해요.
본문
이 내장 술어들은 텍스트 스트림에서/으로 단일 문자 또는 문자 코드를 입출력할 수 있게 해줘요. 원자 end_of_file이 파일 끝을 나타내는 문자로 반환돼요. -1이 파일 끝을 나타내는 문자 코드로 반환돼요.
get_char/2, get_char/1, get_code/1, get_code/2
Templates
get_char(+stream_or_alias, ?in_character)
get_char(?in_character)
get_code(+stream_or_alias, ?in_character_code)
get_code(?in_character_code)
Description
get_char(SorA, Char)는 Char가 스트림 항 또는 별칭 SorA와 연관된 스트림에서 읽은 다음 문자와 통일되면 성공해요. get_code/2는 get_char/2와 비슷하지만 문자 코드를 다뤄요. get_char/1과 get_code/1은 현재 입력 스트림에 적용돼요.
Errors
SorA가 변수 -instantiation_errorChar가 변수도 in-character도 아님 -type_error(in_character, Char)Code가 변수도 정수도 아님 -type_error(integer, Code)SorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 출력 스트림 -permission_error(input, stream, SorA)SorA가 이진 스트림과 연관됨 -permission_error(input, binary_stream, SorA)SorA가end_of_stream(past)와eof_action(error)스트림 속성 가짐 -permission_error(input, past_end_of_stream, SorA)- 스트림에서 입력된 엔티티가 문자가 아님 -
representation_error(character) Code가 정수이지만 in-character 코드가 아님 -representation_error(in_character_code)
Portability: ISO 술어.
get_key/2, get_key/1, get_key_no_echo/2, get_key_no_echo/1
Templates
get_key(+stream_or_alias, ?integer)
get_key(?integer)
get_key_no_echo(+stream_or_alias, ?integer)
get_key_no_echo(?integer)
Description
get_key(SorA, Code)는 Code가 스트림 항 또는 별칭 SorA와 연관된 스트림에서 읽은 다음 키의 문자 코드와 통일되면 성공해요. 키보드에서 단일 키를 읽으려는 용도예요(따라서 SorA는 현재 입력 스트림을 가리켜야 해요). 버퍼링은 수행되지 않고(문자가 가능해지면 바로 읽힘) 기능 키도 읽을 수 있어요(그 경우 Code는 정수 > 255). 읽은 문자가 출력 가능하면 에코(echo)돼요.
이 기능은 linedit 기능이 설치되었을 때만 가능해요(4.2.6절). 그렇지 않으면 get_key/2는 get_code/2(8.12.1절)와 비슷하게 동작하지만(첫 문자의 코드가 반환됨), 또한 < space(0x20) 문자(특히 RETURN)가 읽힐 때까지 남은 문자들을 펌핑해요. SorA가 현재 입력 스트림을 가리키지 않거나 이 스트림이 터미널에 연결되지 않았을 때도 같은 동작이 발생해요.
get_key_no_echo/2는 읽은 문자가 에코되지 않는다는 점만 제외하면 get_key/2와 비슷하게 동작해요. get_key/1과 get_key_no_echo/1은 현재 입력 스트림에 적용돼요.
Errors
SorA가 변수 -instantiation_errorCode가 변수도 정수도 아님 -type_error(integer, Code)SorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 출력 스트림 -permission_error(input, stream, SorA)SorA가 이진 스트림과 연관됨 -permission_error(input, binary_stream, SorA)SorA가end_of_stream(past)와eof_action(error)스트림 속성 가짐 -permission_error(input, past_end_of_stream, SorA)
Portability: GNU Prolog 술어.
peek_char/2, peek_char/1, peek_code/1, peek_code/2
Templates
peek_char(+stream_or_alias, ?in_character)
peek_char(?in_character)
peek_code(+stream_or_alias, ?in_character_code)
peek_code(?in_character_code)
Description
peek_char(SorA, Char)는 Char가 스트림 항 또는 별칭 SorA와 연관된 스트림에서 다음에 읽힐 문자와 통일되면 성공해요. 문자는 읽히지 않아요. peek_code/2는 peek_char/2와 비슷하지만 문자 코드를 다뤄요. peek_char/1과 peek_code/1은 현재 입력 스트림에 적용돼요.
Errors
SorA가 변수 -instantiation_errorChar가 변수도 in-character도 아님 -type_error(in_character, Char)Code가 변수도 정수도 아님 -type_error(integer, Code)SorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 출력 스트림 -permission_error(input, stream, SorA)SorA가 이진 스트림과 연관됨 -permission_error(input, binary_stream, SorA)SorA가end_of_stream(past)와eof_action(error)스트림 속성 가짐 -permission_error(input, past_end_of_stream, SorA)- 스트림에서 입력된 엔티티가 문자가 아님 -
representation_error(character) Code가 정수이지만 in-character 코드가 아님 -representation_error(in_character_code)
Portability: ISO 술어.
unget_char/2, unget_char/1, unget_code/2, unget_code/1
Templates
unget_char(+stream_or_alias, +character)
unget_char(+character)
unget_code(+stream_or_alias, +character_code)
unget_code(+character_code)
Description
unget_char(SorA, Char)는 Char를 스트림 항 또는 별칭 SorA와 연관된 스트림에 다시 밀어 넣어요(push back). Char는 get_char/2가 읽을 다음 문자가 돼요. 누적해서 다시 밀어 넣을 수 있는 최대 문자 수는 max_unget Prolog 플래그(8.22.1절)로 주어져요. unget_code/2는 unget_char/2와 비슷하지만 문자 코드를 다뤄요. unget_char/1과 unget_code/1은 현재 입력 스트림에 적용돼요.
Errors
SorA가 변수 -instantiation_errorChar가 변수 -instantiation_errorCode가 변수 -instantiation_errorChar가 변수도 문자도 아님 -type_error(character, Char)Code가 변수도 정수도 아님 -type_error(integer, Code)SorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 출력 스트림 -permission_error(input, stream, SorA)SorA가 이진 스트림과 연관됨 -permission_error(input, binary_stream, SorA)Code가 정수이지만 문자 코드가 아님 -representation_error(character_code)
Portability: GNU Prolog 술어.
put_char/2, put_char/1, put_code/1, put_code/2, nl/1, nl/0
Templates
put_char(+stream_or_alias, +character)
put_char(+character)
put_code(+stream_or_alias, +character_code)
put_code(+character_code)
nl(+stream_or_alias)
nl
Description
put_char(SorA, Char)-Char를 스트림 항 또는 별칭SorA와 연관된 스트림에 씀.put_code/2-put_char/2와 비슷하지만 문자 코드를 다룸.nl(SorA)- 스트림 항 또는 별칭SorA와 연관된 스트림에 개행 문자를 씀.put_char(SorA, '\n')과 동일.
put_char/1, put_code/1, nl/0은 현재 출력 스트림에 적용돼요.
Errors
SorA가 변수 -instantiation_errorChar가 변수 -instantiation_errorCode가 변수 -instantiation_errorChar가 변수도 문자도 아님 -type_error(character, Char)Code가 변수도 정수도 아님 -type_error(integer, Code)SorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 입력 스트림 -permission_error(output, stream, SorA)SorA가 이진 스트림과 연관됨 -permission_error(output, binary_stream, SorA)Code가 정수이지만 문자 코드가 아님 -representation_error(character_code)
Portability: ISO 술어.