ホームページ >バックエンド開発 >Golang >Tab 押下検出を含む C の `getchar()` 機能を Go で複製するにはどうすればよいですか?

Tab 押下検出を含む C の `getchar()` 機能を Go で複製するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 08:56:08715ブラウズ

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

C の Getchar に似た Go 関数

C プログラミングでは、getchar() はコンソールから 1 文字を読み取るためによく使用される関数です。ただし、Go を使用する場合は、タブ押下検出などのさまざまなユースケースを処理するために同様の関数が必要です。

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 を使用してコンソールから 1 文字を読み取り、それを保存します。変数入力に。入力バイト配列の最初の要素は、押された文字を表します。

タブ押下の処理

特にタブ押下を検出する場合、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

以上がTab 押下検出を含む C の `getchar()` 機能を Go で複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。