Lorsqu'un utilisateur interagit avec une application de ligne de commande, appuyer sur une touche l'exige souvent appuyer sur Entrée pour soumettre leur contribution. Cependant, certains scénarios nécessitent une reconnaissance immédiate des caractères sans la touche Entrée. Comment y parvenir dans Go pour les systèmes Windows ?
Pour les systèmes Windows, vous pouvez désactiver la mise en mémoire tampon des entrées et masquer les caractères saisis à l'écran en suivant les étapes suivantes :
1. // disable input buffering exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run() 2. // do not display entered characters on the screen exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
Avec ces commandes en place, vous pouvez utiliser le code suivant pour lire les caractères sans appuyer sur Entrée :
var b []byte = make([]byte, 1) for { os.Stdin.Read(b) fmt.Println("I got the byte", b, "("+string(b)+")") }
Lorsque vous exécutez ce programme, il sera afficher un message invitant l'utilisateur à appuyer sur n'importe quelle touche pour quitter. Appuyer sur n'importe quelle touche déclenchera l'appel os.Stdin.Read(b), qui renverra le caractère appuyé et l'affichera à l'écran.
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!