다음을 통해 공유


상위 수준 콘솔 입력 및 출력 함수

ReadFileWriteFile 함수 또는 ReadConsoleWriteConsole 함수를 사용하면 애플리케이션이 콘솔 입력을 읽고 콘솔 출력을 문자 스트림으로 쓸 수 있습니다. ReadConsoleWriteConsole은 와이드 문자 함수(텍스트 인수가 유니코드를 사용해야 하는 경우) 또는 ANSI 함수(텍스트 인수가 Windows 문자 집합의 문자를 사용해야 하는 경우)로 사용할 수 있다는 점을 제외하고 ReadFileWriteFile과 똑같이 동작합니다. 유니코드 또는 ANSI 문자 집합을 지원하기 위해 단일 원본 집합을 기본 유지해야 하는 애플리케이션은 ReadConsoleWriteConsole을 사용해야 합니다.

ReadConsoleWriteConsole 은 콘솔 핸들에서만 사용할 수 있습니다. ReadFileWriteFile 은 다른 핸들(예: 파일 또는 파이프)과 함께 사용할 수 있습니다. 리디렉션되었으며 더 이상 콘솔 핸들이 없는 표준 핸들과 함께 사용하면 ReadConsole 및 WriteConsole 이 실패합니다.

키보드 입력을 가져오기 위해 프로세스는 콘솔의 입력 버퍼에 대한 핸들과 함께 ReadFile 또는 ReadConsole을 사용하거나, 리디렉션된 경우 STDIN ReadFile을 사용하여 파일 또는 파이프에서 입력을 읽을 수 있습니다. 이러한 함수는 ANSI 또는 유니코드 문자로 변환할 수 있는 키보드 이벤트만 반환합니다. 반환할 수 있는 입력에는 컨트롤 키 조합이 포함됩니다. 함수는 함수 키 또는 화살표 키와 관련된 키보드 이벤트를 반환하지 않습니다. 마우스, 창, 포커스 또는 메뉴 입력에 의해 생성된 입력 이벤트는 dis카드ed입니다.

줄 입력 모드를 사용하는 경우(기본 모드) ReadFileReadConsole은 ENTER 키를 누를 때까지 호출 애플리케이션으로 돌아가지 않습니다. 줄 입력 모드를 사용하지 않도록 설정하면 하나 이상의 문자를 사용할 수 있게 될 때까지 함수가 반환되지 않습니다. 두 모드에서 사용 가능한 모든 문자는 더 이상 키를 사용할 수 없거나 지정된 수의 문자를 읽을 때까지 읽습니다. 읽지 않은 문자는 다음 읽기 작업까지 버퍼링됩니다. 함수는 실제로 읽은 총 문자 수를 보고합니다. 에코 입력 모드를 사용하도록 설정하면 이러한 함수에서 읽은 문자가 현재 커서 위치의 활성 화면 버퍼에 기록됩니다.

프로세스는 WriteFile 또는 WriteConsole을 사용하여 활성 또는 비활성 화면 버퍼에 쓰거나, STDOUT이 리디렉션된 경우 WriteFile을 사용하여 파일 또는 파이프에 쓸 수 있습니다. EOL 출력 모드에서 처리된 출력 모드 및 래핑은 문자가 화면 버퍼에 쓰거나 에코되는 방식을 제어합니다.

WriteFile 또는 WriteConsole로 작성되거나 ReadFile 또는 ReadConsole에 의해 에코되는 문자는 현재 커서 위치의 화면 버퍼에 삽입됩니다. 각 문자가 기록되면 커서 위치가 다음 문자 셀로 이동합니다. 그러나 행의 끝에 있는 동작은 EOL 출력 모드에서 콘솔 화면 버퍼의 래핑에 따라 달라집니다.

커서의 위치에 대한 자세한 내용은 가상 터미널 시퀀스, 특히 현재 위치를 찾기 위한 쿼리 상태 범주 및 현재 위치를 설정하기 위한 커서 위치 범주를 통해 찾을 수 있습니다. 또는 애플리케이션에서 GetConsoleScreenBufferInfo 함수를 사용하여 현재 커서 위치를 확인하고 SetConsoleCursorPosition 함수를 사용하여 커서 위치를 설정할 수 있습니다. 그러나 가상 터미널 시퀀스 메커니즘은 모든 신규 및 지속적인 개발에 선호됩니다. 이 결정의 전략에 대한 자세한 내용은 클래식 함수와 가상 터미널에코시스템 로드맵 설명서에서 확인할 수 있습니다.

상위 수준 콘솔 I/O 함수를 사용하는 예제는 상위 수준 입력 및 출력 함수 사용을 참조 하세요.