首頁 > 後端開發 > Golang > 如何在 Go 中即時讀取標準輸入中的單一字元?

如何在 Go 中即時讀取標準輸入中的單一字元?

Patricia Arquette
發布: 2024-12-13 14:17:14
原創
803 人瀏覽過

How Can I Read Single Characters from Standard Input Instantly in Go?

在Go 中立即從標準輸入讀取字元

在Go 中,從標準輸入讀取通常需要按Enter 才能接收輸入。但是,如果您希望應用程式立即回應任何按鍵,類似於 C# 中的 Console.ReadKey(),則以下解決方案可以實現這一點。

提供的程式碼使用 stty 指令停用輸入緩衝,確保按鍵立即處理。字元回顯也被抑制以防止顯示輸入。

這裡是代碼:

package main

import (
    "fmt"
    "os"
    "os/exec"
)

func main() {
    // Disable input buffering
    exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run()
    // Suppress input echoing
    exec.Command("stty", "-F", "/dev/tty", "-echo").Run()

    var b []byte = make([]byte, 1)
    for {
        os.Stdin.Read(b)
        fmt.Println("I got the byte", b, "("+string(b)+")")
    }
}
登入後複製

當此代碼運行時,按任意鍵立即將字符字節表示形式和相應的字符返回到控制台.

以上是如何在 Go 中即時讀取標準輸入中的單一字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板