> 백엔드 개발 > Golang > Enter를 누르지 않고 Go의 콘솔 입력에서 단일 문자를 읽는 방법은 무엇입니까?

Enter를 누르지 않고 Go의 콘솔 입력에서 단일 문자를 읽는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-15 08:10:12
원래의
926명이 탐색했습니다.

How to Read Single Characters from Console Input in Go Without Pressing Enter?

Go에서 Enter 키 없이 문자 읽기

문제

사용자가 명령줄 애플리케이션과 상호 작용할 때 키를 눌러야 하는 경우가 많습니다. Enter를 눌러 입력 내용을 제출합니다. 그러나 일부 시나리오에서는 Enter 키 없이 즉각적인 문자 인식이 필요합니다. Windows 시스템용 Go에서 이를 어떻게 달성할 수 있습니까?

해결책

Windows 시스템의 경우 다음 단계를 사용하여 입력 버퍼링을 비활성화하고 입력된 문자를 화면에서 숨길 수 있습니다.

1. // disable input buffering
exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run()
2. // do not display entered characters on the screen
exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
로그인 후 복사

이러한 명령을 사용하면 다음 코드를 사용하여 Enter 키를 누르지 않고도 문자를 읽을 수 있습니다.

var b []byte = make([]byte, 1)
for {
    os.Stdin.Read(b)
    fmt.Println("I got the byte", b, "("+string(b)+")")
}
로그인 후 복사

이 프로그램을 실행하면 사용자에게 종료하려면 아무 키나 누르라는 메시지가 표시됩니다. 아무 키나 누르면 os.Stdin.Read(b) 호출이 트리거되어 누른 문자를 반환하고 화면에 표시합니다.

위 내용은 Enter를 누르지 않고 Go의 콘솔 입력에서 단일 문자를 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿