Aiuto in C per le frecce da tastiera

di Anonimizzato15955 il
5 risposte
Salve ragazzi, stavo cercando di realizzare un programma in cui potessi rispondere a una domanda scegliendo tra due opzioni utilizzando le frecce della tastiera e il tasto invio. Programmo da pochissimo, una settimana circa, e forse è un po' azzardato iniziare così, ma voglio provarci ugualmente. sono riuscito a inserire in input le frecce su e giu e il tasto invio (non so se mi spiego, ma leggendo il codice forse sarà più chiaro). Ho fatto un ciclo while in cui posso premere le frecce su e giù finchè non premo il tasto invio. il mio problema ora è cosa scrivere sotto ai vari casi dello switch! Per ora ho scritto che premendo freccia su stampa a schermo la scritta "Test su", ma vorrei invece che premendo freccia su il cursore si posizionasse sulla scritta "Si" e premendo invio scegliesse l'opzione "si". Vi posto il codice sperando che vi sia chiaro!
#include<stdio.h>
#include<conio.h>

/* Voglio eseguire un programma che consenta di stampare a video due
   possibili opzioni, consentendo la scelta di una delle due con uno
   switch e i tasti freccia */


//dichiarazione variabili

int key=0,a;

main()
{
      //Inizio stampando a video una domanda: "Ti piace la pasta?"
      
      printf("Ti piace la pasta?\n\n");
      //Stampo a video le opzioni: "Si" e "No"
      
      printf(" Si\n");
      printf(" No\n");
      
      //Con le frecce devo poter scegliere un'opzione. Creo uno switch:
      //il caso 1 e 2 sono le frecce su e giù, il caso tre è la conferma (invio)
      
      key = getch();
      if (key == 224){
      while (key!=13)
      {             key = getch();
                    switch (key){
                    
                    //Dentro il caso 1 che devo fare? Dentro il caso 2? Dentro il caso 3?
                    
                                 case 72 : printf("Test su\n");
                                 a=72;
                                 break; 
                           
                                 case 80 : printf("Test giu'\n");
                                 a=80;
                                 break;
                                 
                                 case 13 : printf("Test invio\n");
                                 break;
                                 }
      }
      }
      
      if (a==72)
      printf("Si!");
      
      else if(a==80)
      printf("No!");
      
      getch();

      
      
      
      //Do un output a seconda del tipo di risposta
}

EDIT: Ho risolto assegnando ad a due valori a seconda del tipo di scelta...sembra funzionare. L'unico problema ora è che non voglio che premendo le frecce direzionali mi dia in output "freccia su" o "freccia giu" ma che evidenzi in qualche modo il "si" ed il "no"!

5 Risposte

  • Wo...non spingete eh...

    Ho risolto....grazie a tutti per le risposte utilissime....ecco un forum dove non metterò più piede...

    Peace
  • quiro ha scritto:


    un forum dove non metterò più piede...
    Ce ne faremo una ragione ...
  • quiro ha scritto:


    Wo...non spingete eh...

    Ho risolto....grazie a tutti per le risposte utilissime....ecco un forum dove non metterò più piede...
    Hai atteso meno di 24 ore... Guarda che questo è un forum e non una chat. Comunque mi unisco a oregon nel dire che ce ne faremo una ragione!
  • Però quando c'è puzza di flame, allora la gente quanto si precipita in fretta per commentare... chissà quante altre belle opinioni avrete da esprimere eh! Buon divertimento!
  • Il fatto è che la gente ha tanto da fare e questo non è un servizio a pagamento.

    Quindi ogni tanto si fa il giro dei thread per tentare di dare una mano a qualche utente ma si trova sempre quello poco educato ...
Devi accedere o registrarti per scrivere nel forum
5 risposte