Lire un caractère sur l'entrée standard en Aller (sans en appuyant sur Entrée)
Je veux à mon application:
press any key to exit ...
Et quand j'ai appuyé sur tout clé, il la quitte.
Comment puis-je y parvenir?
Note: j'ai googlé mais tout ce que j'ai trouvé nécessaire d'appuyer sur entrer à la fin. Je veux quelque chose comme Console.ReadKey()
en C#.
Je suis en cours d'exécution MS Windows.
- double possible de Golang fonction similaire à getchar
- Non, ce n'est pas un doublon. J'ai vu que la question avant et en utilisant le code fourni dans la réponse vous devez toujours appuyer sur enter à l'entrée standard.
- La duplicité est uniquement sur la question, et non à une réponse.
- Merci; j'ai changé le titre.
Vous devez vous connecter pour publier un commentaire.
termbox-aller est un poids léger, Allez-package natif, qui propose quelques rudimentaire de contrôle terminal. Y compris la possibilité d'obtenir l'entrée en mode raw (lire les caractères un à un sans la ligne par défaut tampon comportement).
Il a aussi assez ok compatibilité entre les différents systèmes.
Et clavier s'étend termbox-aller à donner une certaine supplémentaire de la fonctionnalité de clavier comme multi-touches de raccourcis et de séquences.
C'est un minimum de travail exemple pour ceux qui exécutent un système UNIX:
fmt.Print(string(b))
devrait fonctionner.aller-termbox est très lourd. Il veut s'emparer de la totalité de la fenêtre de terminal. Par exemple, il efface l'écran de démarrage, ce qui peut ne pas être ce que vous voulez.
Je mettre cela sur OSX. Juste un petit getchar():
https://github.com/paulrademacher/climenu/blob/master/getchar.go
Vous pouvez utiliser cette bibliothèque (le mien): https://github.com/eiannone/keyboard
C'est un exemple pour l'obtention d'une seule frappe:
Vous pouvez lire une seule fois sur une touche à partir d'un terminal en mode raw. Ici est un package qui devrait fournir raw mode terminal à votre programme. Catch: c'est seulement sur Linux.
Essayer ce - http://play.golang.org/p/kg-QirlucY.
Viens de lire à partir de la
os.Stdin
à la fin de lafunc main
SetConsoleMode
. Si vous voulez "Appuyez sur Entrée pour continuer", puisos.Stdin.Read([]byte{0})
est assez.