>백엔드 개발 >Golang >C의 `getchar()`와 동일한 Go 함수를 구현하는 방법은 무엇입니까?

C의 `getchar()`와 동일한 Go 함수를 구현하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-18 17:34:11841검색

How to Implement a Go Function Equivalent to C's `getchar()`?

C의 getchar에 해당하는 Go 함수

C의 함수인 getchar()를 사용하면 사용자가 콘솔에서 단일 문자를 읽을 수 있습니다. 이 기능은 콘솔 완성과 같은 애플리케이션에 바람직합니다. Go에서는 bufio 패키지를 사용하여 비슷한 기능을 구현할 수 있습니다.

Go getchar() 구현

package main

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

func main() {
    reader := bufio.NewReader(os.Stdin)
    input, _ := reader.ReadString('\n')
    fmt.Printf("Input Character: %v", string([]byte(input)[0]))
}

getchar()의 제한 사항

그러나 탭 완성의 경우 getchar()는 이상적인 솔루션이 아닐 수 있습니다. 입력을 캡처하기 위해 Enter를 눌러야 하는 getchar()와 달리, ncurses의 getch(), readline 또는 jLine과 같은 함수는 Enter 없이 단일 키 입력을 캡처하도록 설계되었습니다.

대안 탭 완성을 위한 getchar()

탭 완성의 경우 다음 대안을 고려하세요. 솔루션:

  • ncurses/readline 바인딩 사용: 예를 들어 https://code.google.com/p/goncurses/와 같은 라이브러리는 ncurses 바인딩을 제공합니다.
  • 자신만의 솔루션 구현: 다음과 같은 리소스 활용 https://play.golang.org/p/plwBIIYiqG를 시작점으로 사용하세요.
  • 외부 명령 호출: 다음을 사용하여 stty 또는 jLine과 같은 명령을 실행합니다. os.Exec.

참고 자료:

  • https://groups.google.com/forum/?fromgroups=#!topic/golang -nuts/zhBE5MH4n-Q
  • https://groups.goog le.com/forum/?fromgroups=#!topic/golang-nuts/S9AO_kHktiY
  • https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/icMfYF8wJCk

위 내용은 C의 `getchar()`와 동일한 Go 함수를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.