사용자가 명령줄 애플리케이션과 상호 작용할 때 키를 눌러야 하는 경우가 많습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!