> 백엔드 개발 > Golang > Go에서 탭 처리를 포함한 C의 getchar() 기능을 어떻게 얻을 수 있나요?

Go에서 탭 처리를 포함한 C의 getchar() 기능을 어떻게 얻을 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-27 09:39:11
원래의
358명이 탐색했습니다.

How Can I Achieve C's getchar() Functionality, Including Tab Handling, in Go?

C의 getchar와 유사한 Go 함수

C 프로그래밍에서 getchar() 함수는 문자 입력 처리에 일반적으로 사용됩니다. 이 함수는 사용자의 단일 키 입력을 기다리고 해당 ASCII 값을 반환합니다. 고급 터미널 애플리케이션의 경우 이 기능은 자동 완성과 같은 기능에 필수적입니다. 그러나 Go에는 탭 누르기 처리를 제공하는 getchar()와 직접적으로 동등한 것이 없습니다.

문자 입력에 대한 Go의 접근 방식

Go에서 유사한 기능을 달성하려면 bufio를 사용할 수 있습니다. .NewReader() 및 os.Stdin 패키지. 예는 다음과 같습니다.

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    input, _ := reader.ReadString('\n')
    fmt.Printf("Input Char Is : %v", string([]byte(input)[0]))
}
로그인 후 복사

이 코드는 사용자로부터 입력 한 줄을 읽고 첫 번째 문자의 ASCII 값을 인쇄합니다. 탭 누르기를 구체적으로 감지하려면 입력의 첫 번째 요소가 탭 문자(U 0009)인지 확인할 수 있습니다.

탭 처리를 위한 getchar()의 제한 사항

유의해야 할 중요한 사항은 다음과 같습니다. getchar()는 사용자가 문자를 입력한 후 Enter 키를 눌러야 하기 때문에 탭 처리에 적합하지 않습니다. 이 동작은 탭 자동 완성에 대해 예상되는 기능과 잘 일치하지 않습니다.

대체 접근 방식

자동 완성을 효과적으로 구현하려면 다른 옵션을 고려해야 합니다.

  • ncurses 바인딩 사용: 인기 있는 ncurses에 사용할 수 있는 Go 바인딩이 있습니다. 단일 키 입력 처리를 위해 getch()와 같은 기능을 제공하는 터미널 처리 라이브러리.
  • 사용자 정의 솔루션 만들기: 원시 입력 및 키 입력을 처리하기 위해 고유한 Go 구현을 만들 수 있습니다. 동작을 완전히 제어할 수 있습니다.
  • os.Exec 사용: os.Exec을 사용하여 외부 명령을 실행할 수 있습니다. getchar()와 유사한 기능을 제공하는 stty 또는 jLine과 같은 것입니다.

결론

Go에는 C의 getchar()와 정확히 유사한 기능이 없지만 다양한 기술을 활용할 수 있습니다. 특정 요구 사항에 따라 유사한 기능을 달성합니다. ncurses 바인딩을 사용하든, 맞춤형 솔루션을 생성하든, os.Exec를 활용하든 목표는 Go 애플리케이션에 대한 효과적인 키 입력 및 탭 처리를 구현하는 것입니다.

위 내용은 Go에서 탭 처리를 포함한 C의 getchar() 기능을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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