Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Meniru Fungsi `getchar()` C dalam Go, Termasuk Pengesanan Akhbar Tab?

Bagaimanakah Saya Boleh Meniru Fungsi `getchar()` C dalam Go, Termasuk Pengesanan Akhbar Tab?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 08:56:08702semak imbas

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

Fungsi Go Serupa dengan Getchar C

Dalam pengaturcaraan C, getchar() ialah fungsi yang biasa digunakan untuk membaca satu aksara daripada konsol. Walau bagaimanapun, apabila bekerja dengan Go, fungsi yang serupa diperlukan untuk mengendalikan pelbagai kes penggunaan, termasuk pengesanan tekan tab.

Go Equivalent of getchar()

Untuk mencapai kefungsian serupa dalam Go as getchar( ) dalam C, kod berikut boleh digunakan:

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

}

Kod ini membaca satu aksara daripada konsol menggunakan bufio.NewReader dan menyimpan ia dalam input berubah. Elemen pertama tatasusunan bait input mewakili aksara yang ditekan.

Mengendalikan Tekan Tab

Untuk mengesan penekan tab secara khusus, getchar() tidak sesuai kerana ia memerlukan menekan kekunci enter. Sebaliknya, pertimbangkan untuk menggunakan perpustakaan atau melaksanakan fungsi anda sendiri untuk menangkap satu ketukan kekunci, seperti:

  • Menggunakan ncurses atau pengikatan garis baca
  • Mencipta fungsi tersuai (lihat titik permulaan di http ://play.golang.org/p/plwBIIYiqG)
  • Melaksanakan arahan seperti stty atau jLine menggunakan os.Exec

Nota Tambahan

Adalah penting untuk diingat bahawa penyelesaian ini mungkin berbeza dalam pelaksanaan dan sokongannya untuk mengendalikan akhbar tab. Rujuk sumber yang disediakan dalam rujukan untuk selanjutnya maklumat:

  • 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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Fungsi `getchar()` C dalam Go, Termasuk Pengesanan Akhbar Tab?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn