Maison > développement back-end > Golang > Comment puis-je lire instantanément des caractères uniques à partir d'une entrée standard dans Go ?

Comment puis-je lire instantanément des caractères uniques à partir d'une entrée standard dans Go ?

Patricia Arquette
Libérer: 2024-12-13 14:17:14
original
867 Les gens l'ont consulté

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

Lire instantanément un caractère à partir d'une entrée standard dans Go

Dans Go, la lecture à partir d'une entrée standard nécessite généralement d'appuyer sur Entrée pour recevoir l'entrée. Cependant, si vous souhaitez que votre application réponde immédiatement à toute pression sur une touche, comme avec Console.ReadKey() en C#, la solution suivante peut y parvenir.

Le code fourni désactive la mise en mémoire tampon d'entrée à l'aide des commandes stty, garantissant que les frappes sont traitées instantanément. L'écho des caractères est également supprimé pour empêcher la saisie affichée.

Voici le code :

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)+")")
    }
}
Copier après la connexion

Lorsque ce code est en cours d'exécution, appuyer sur n'importe quelle touche renvoie immédiatement la représentation en octets du caractère et le caractère correspondant à la console. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal