首頁 >後端開發 >Golang >如何在 Go 中複製 C 的 `getchar()` 功能,包括 Tab 按偵測?

如何在 Go 中複製 C 的 `getchar()` 功能,包括 Tab 按偵測?

Patricia Arquette
Patricia Arquette原創
2024-12-19 08:56:08702瀏覽

How Can I Replicate C's `getchar()` Functionality in Go, Including Tab Press Detection?

Go 函數類似於 C 的 Getchar

在 C 程式設計中,getchar() 是一個常用的函數,用於從控制台讀取單一字元。然而,在使用 Go 時,需要類似的函數來處理各種用例,包括 Tab 按檢測。

Go 中getchar() 的等效項

在Go 中實作與getchar() 類似的功能)在C 中,可以使用以下程式碼:

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]))

}

此程式碼使用bufio.NewReader 從控制台讀取單一字元並將其儲存在變數輸入中。輸入位元組數組的第一個元素表示按下的字元。

處理 Tab 按

對於專門偵測 Tab 按下, getchar() 不適合,因為它需要按 Enter 鍵。相反,請考慮使用庫或實現您自己的函數來捕獲單個擊鍵,例如:

  • 使用ncurses 或readline 綁定
  • 建立自訂函數(請參閱http 中的起點) ://play.golang.org/p/plwBIIYiqG)
  • 執行stty 或jLine 等指令使用os.Exec

附加說明

請務必記住,這些解決方案的實現和對處理選項卡按下的支援可能有所不同。請參閱參考資料中提供的資源以獲取更多資訊資訊:

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

以上是如何在 Go 中複製 C 的 `getchar()` 功能,包括 Tab 按偵測?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn