首頁 >後端開發 >Golang >如何實作相當於 C 的 getchar() 的 Go 函數?

如何實作相當於 C 的 getchar() 的 Go 函數?

Susan Sarandon
Susan Sarandon原創
2024-12-18 17:34:11829瀏覽

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

Go 函數,相當於C 的getchar

getchar(),C 中的一個函數,讓使用者可以從控制台讀取單一字元。此功能對於控制台完成等應用程式來說是理想的。在 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() 的限制

但是,在tab 補全的情況下,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