Sto programmando un gioco per console, (pac-man), e mi chiedevo come avrei ottenuto l'input dell'utente senza che loro premessero il tasto Invio. Ho guardato in giro un po 'su internet e ho trovato alcune cose su _getch()
ma apparentemente non è più attuale e non si sa che i file di intestazione lo dichiarano a meno che uno non costruisca il suo, cosa che non posso fare poiché sono ancora veramente nuovo per C++. Quindi, come potrei creare un codice che possa farlo? GrazieC'è un modo per ottenere l'input dell'utente senza premere il tasto Invio?
9
A
risposta
7
Questo funziona per me (io sono su linux):
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
int main()
{
struct termios old_tio, new_tio;
unsigned char c;
/* get the terminal settings for stdin */
tcgetattr(STDIN_FILENO,&old_tio);
/* we want to keep the old setting to restore them a the end */
new_tio=old_tio;
/* disable canonical mode (buffered i/o) and local echo */
new_tio.c_lflag &=(~ICANON & ~ECHO);
/* set the new settings immediately */
tcsetattr(STDIN_FILENO,TCSANOW,&new_tio);
do {
c=getchar();
printf("%d ",c);
} while(c!='q');
/* restore the former settings */
tcsetattr(STDIN_FILENO,TCSANOW,&old_tio);
return 0;
}
rende il buffer console.
di riferimento: http://shtrom.ssji.net/skb/getc.html
2
è possibile utilizzare libreria conio.h e una funzione _getch() per ricevere input in modo vivo e si può anche impostare ciclo per più ingressi.
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
char n='a'; //Just to initialize it.
while(n!='e') // Will exit if you press e.
{
n=_getch();
}
}
Problemi correlati
- 1. Come convertire un tasto Invio Premere un tasto Tasto Premere per le pagine Web
- 2. Bind TextBox su tasto Invio premere
- 3. React - rileva "invio" premere il tasto in cambio evento
- 4. Premere Invio Invio sempre modulo
- 5. Come acquisire Premere il tasto Invio in GtkEntry
- 6. Premere Invio per continuare
- 7. tasto di manipolazione premere il tasto
- 8. Come codificare "premere il tasto per continuare"
- 9. Android - Premere il tasto tastiera
- 10. Attivazione di un evento della tastiera premendo un tasto senza premere il tasto dalla tastiera
- 11. Premere un tasto con Java
- 12. c'è un modo per utilizzare l'input ("Premere qualsiasi tasto per continuare") sulla versione 2.6
- 13. Consentendo al tasto "Invio" di premere il pulsante di invio, al contrario di utilizzare solo MouseClick
- 14. Premere il tasto Invio invece di fare clic sul pulsante con Scarpe (Ruby)
- 15. Permetti solo 1 valore per tasto premere
- 16. ReactJs: Prevenire più volte premere il tasto
- 17. Tasto funzione tastiera per invio tasto evento
- 18. Come aspettare 20 secondi per l'utente per premere un tasto?
- 19. casper.js: premere il tasto "invio" nel campo di inserimento di ExtJs
- 20. Leggere un carattere dallo standard input in Go (senza premere Invio)
- 21. Accelerator (Tasto di scelta) vengono eseguite senza premere tasti ALT
- 22. RubyMine: premere il tasto per "convertire in virgolette"?
- 23. DataList e tasto Invio evento
- 24. Premere Invio per continuare in C
- 25. Leggere un carattere senza richiedere il pulsante Invio premuto
- 26. Come disabilitare/sovrascrivere il tasto invio per il completamento automatico?
- 27. Jquery seleziona il campo di testo SUCCESSIVO sul tasto Invio Premere
- 28. Uso di jQuery 'on()' per guardare per inserire il tasto premere
- 29. Premere TAB e quindi tasto INVIO in Selenium WebDriver con Ruby
- 30. Perché non getchar() mi aspetta per premere invio dopo scanf()?
La biblioteca gioco maledizioni supporta una funzione come questa: http://invisible-island.net/ncurses/man/curs_get_wch.3x.html –
Qual è la vostra piattaforma? Linux o Windows? –
Mac. Sto usando xCode –