|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
[C ANSI] input da tastiera che non blocchi l'esecuzione del codice
Ciao!
come da titolo.. cerco un modo per verificare se c'è un tasto premuto e, se si ,leggerlo per poi utilizzarlo nel programma (quando si preme il tasto non deve apparire sullo schermo) è possibile? grazie! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Non credo faccia parte dello standard ANSI, ma sicuramente in ogni compilatore che può usare conio.h hai a disposizione la funzione kbhit() (una _kbhit(), conforme ISO C++, esiste in MSVC) che ritorna true o false a seconda del numero di caratteri contenuti nel buffer di input. Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
ho usato kbhit() però cercavo qualcosa di ansi...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non è possibile.
Il metodo da usare dipende tutto da sistema operativo e compilatore. Non è conforme ISO Ultima modifica di cionci : 03-12-2009 alle 20:20. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
|
Quote:
__________________
Ciao ciao cagnolino Billy MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen. XBOX Live GamerTag: InsaneMau |
|
|
|
|
|
|
#7 | ||
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Quote:
Si può leggere in testa alla descrizione la frase: Quote:
Sarebbe tra l'altro la prima volta che trovo qualcosa di esplicitamente sbagliato su msdn (l'undocumented è un discorso a parte). Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator Ultima modifica di bottomap : 03-12-2009 alle 21:00. |
||
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Come vedi nemmeno _kbhit è standard (nemmeno C++), altrimenti ce lo scrivevano
http://msdn.microsoft.com/en-us/libr...4c(VS.80).aspx Anche _kbhit risiede in conio.h, tutto quello che c'è in conio.h non è standard. Probabilmente per "conforme" allo standard ISO C++ si intende che il nome della funzione è conforme allo standard ISO C++ perché è presente l'underscore. Ipotizzando, è possibile che preveda l'underscore per le funzioni che vengono aggiunte alla libreria standard per evitare che si confonda con le altre funzioni. |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Si, evidentemente si indica ISO C++ conformant per l'underscore davanti al nome e non per altro. Non mi pare però che in altre funzioni che fanno parte dello standard sia specificato come dici ("altrimenti ce lo scrivevano"). E'vero invece che ogni funzione POSIX per cui esiste la corrispondente _funzione è descritta la stessa frase (This POSIX function is deprecated beginning in Visual C++ 2005. Use the ISO C++ conformant _<funzione> instead.). Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Sep 2008
Messaggi: 1271
|
Se ti serve una soluzione che rispetti "lo standard ANSI" ricorda che ci sono du standard, C89 e C99. Ad ogni modo la maggior parte dei compilatori (GCC incluso) non supportano tutte le caratteristiche previste dal nuovo standard.
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2 |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Evidentemente si... nell'msdn fornita su cd con il mcvs .net 2003 non c'è traccia della cosa (anzi direttamente kbhit rimanda su _kbhit senza avere una sua paginetta di interludio).
Sono curioso di vedere se riesco a recuperare il vecchio msdn fornito con il vs5 che usavo al lavoro. Ma mi pare che fino al vs6 non esistesse proprio la forma _<funzione> per la maggior parte delle funzioni che sarebbero diventate deprecate (comprese quelle del conio). Forse comunque menzionavano se fossero o meno di derivazione POSIX.
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Codice:
Function Required header Compatibility fgets <stdio.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP fgetws <stdio.h> or <wchar.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:29.





















