PDA

Visualizza la versione completa : [C] interruzione contatore


xxomerxx
25-05-2005, 12:26
salve,

ho provato il seguente codice

t=1000;
char s;

while ((s!='a') && (t!=0))

{
gotoxy(40,15);
printf("%4d",t);
s=getchar();
t--;

}

stampa a video il numero 1000 che decremente il suo valore quando viene premuto un tasto
il ciclo si interrompe solo se t assume il valore di 0 o se viene inserita la lettera 'a'
vorrei sapere come effettuare lo stesso controllo facendo in modo che il contatore decrementi anche se non viene premuto nessun tasto e che si interrompa solo alle stesse condizioni di prima.
grazie

kentaromiura
25-05-2005, 12:33
http://forum.html.it/forum/showthread.php?s=&threadid=835063
:ciauz:

xxomerxx
25-05-2005, 13:16
Originariamente inviato da kentaromiura
http://forum.html.it/forum/showthread.php?s=&threadid=835063
:ciauz:


ok, ho usato la funzione kbhit() nel ciclo while ma non riesco ad avere il controllo del tipo di carattere.
usandola cosė, il ciclo si interrompe con qualsiasi tasto.
a me interessa uscire dal ciclo solo premendo il tasto 'a'.
come posso effettuare il controllo?

kentaromiura
25-05-2005, 13:24
#include <windows.h>
#include<stdio.h>
int main(void){
end=1;
while(end!=0){
if (GetKeyState (41) < 0) end=0;//A key
}
return 0;
}


per ottenere un keycode usa VkKeyScan(char)

xxomerxx
25-05-2005, 16:36
Originariamente inviato da kentaromiura


#include <windows.h>
#include<stdio.h>
int main(void){
end=1;
while(end!=0){
if (GetKeyState (41) < 0) end=0;//A key
}
return 0;
}


per ottenere un keycode usa VkKeyScan(char)
potresti gentilmente farmi un esempio di codice con l'utilizzo di VkKeyScan() ?

kentaromiura
25-05-2005, 17:07
Originariamente inviato da xxomerxx
potresti gentilmente farmi un esempio di codice con l'utilizzo di VkKeyScan() ?
printf("%d",VkKeyScan('a')&255);
ritorna 65


#include <stdio.h>
#include <windows.h>
int main(void){
while(!(GetKeyState (VkKeyScan('A')&255)<0));
printf("%d",VkKeyScan('A')&255);
getchar();getchar();

}

Loading