Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99

    [C] utilizzo tasti con getch()?

    Ciao a tutti, sto creando un prato fiorito giusto per svago per il terminale di windows, con la funzione getch() ho risolto per usare i tasti freccia, mentre per la barra spaziatrice devo premere due volte il tasto per farlo riconoscere, ecco qua il mio codice (solo la parte interessata), qualcuno che potrebbe darmi un consiglio su come fare?
    codice:
    #include<stdio.h>
    int main(void)
    {
    	while(1){
    		if (getch() == 224) { 
    			switch (getch()) { 
    				case 72: printf("su\n"); 
    					break; 
    				case 75: printf("sinistra\n");
    					break; 
    				case 77: printf("destra\n");
    					break; 
    				case 80: printf("giu\n");
    					break; 
    			}
    		}
    		else if(getch()==32) printf("spazio\n");
    	}
    	return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590

    Re: [C] utilizzo tasti con getch()?

    codice:
    	char ch;
    	while(1){
    		ch = getch();
    		if (ch == 224) { 
    			switch (getch()) { 
    				case 72: printf("su\n"); 
    					break; 
    				case 75: printf("sinistra\n");
    					break; 
    				case 77: printf("destra\n");
    					break; 
    				case 80: printf("giu\n");
    					break; 
    			}
    		}
    		else if(ch==32) printf("spazio\n");
    	}
    Oppure:
    codice:
    	while(1){
    		if(getch()==32) {
    			printf("spazio\n")
    		} else {
    			switch (getch()) { 
    				case 72: printf("su\n"); 
    					break; 
    				case 75: printf("sinistra\n");
    					break; 
    				case 77: printf("destra\n");
    					break; 
    				case 80: printf("giu\n");
    					break; 
    			}
    		}
    	}
    In ogni caso getch non risiede in stdio quindi manca un include.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    Grazie mille, il secondo codice funziona bene mentre nel primo funziona solo lo spazio :/
    comunque si lo so e me lo scrive anche durante la compilazione, ma comunque include qualcosa di incluso in automatico quindi per ora non mi ci faccio problemi

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Perchè getch può ritornare valori diversi da 224, io ho assunto che il tuo funzionasse e non me ne sono preoccupato, ma se non funziona quello non funziona nemmeno il tuo con i tasti freccia!
    Non bisognerebbe mai ignorare i warning.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    Il mio funziona, solo che per fargli scrivere "spazio" devo premere lo spazio due volte, come se aspettasse conferma, poi i tasti 224 funzionano tutti senza problemi, il warning mi dice soltanto che non è incluso il conio.h (o chi per esso) e che però lo include di default, quindi non è quello il punto,
    comunque la seconda soluzione che mi hai dato funziona perfettamente
    Mi sto divertendo a giocarci ancora prima di aver completato il tutto
    thanks

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.