ホームページ >バックエンド開発 >Golang >Tab キーの処理を含む、C の `getchar()` の機能を Go で実現するにはどうすればよいですか?

Tab キーの処理を含む、C の `getchar()` の機能を Go で実現するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-03 07:49:40333ブラウズ

How Can I Achieve the Functionality of C's `getchar()` in Go, Including Tab Key Handling?

C の getchar() と同等の Go を見つける

C プログラミングでは、getchar() は単一文字を読み取るためによく使用される関数ですバッファリングせずに標準入力から。 Go は同様の機能、特にコンソール環境でタブのキーストロークを処理できる機能を提供しますか?この機能は、コンソール アプリケーションのオートコンプリート機能の開発に役立つことがわかります。

Go の代替案: 詳細な内訳

Go は、C の getchar( と直接同等のものを提供しません) )。ただし、次のコードを使用して同様の機能を実現できます:

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

説明:

この Go コードは次の手順を使用します:

  1. 標準入力から入力を読み取る bufio.Reader を作成し、 getchar() の機能を効果的にエコーします。 C.
  2. ReadString() メソッドを使用して、ユーザーからの入力行を読み取ります。
  3. キャストと型変換を使用して、入力文字列の最初のバイトを文字に変換します。
  4. 次の getchar() の出力形式に似た文字をコンソールに出力します。 C.

注:

C の getchar() では、ユーザーは文字を入力した後に Enter キーを押す必要があることに注意してください。ここで紹介する Go コードにはこの制限はありません。この動作が必要な場合は、提供されているドキュメントで推奨されている、curses や readline などの代替アプローチを検討することを検討してください。

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

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