Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: peterfly en 18 Diciembre 2011, 19:09 pm



Título: duda
Publicado por: peterfly en 18 Diciembre 2011, 19:09 pm
teniendo el siguiente codigo...
Código:
#include <stdio.h> 
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>

int main(void)
{
   int ch;
   
   do {
      ch = getch();
     
      switch (ch){
             
      case 'a':
         puts("opcion 1");
         getch();
         
         break;
      case 'd':
         puts("opcion 2");
         getch();
         break;
         
      case 's':
         puts("opcion 3");
         getch();
         break;
         
      case 'w':
         puts("opcion 4");
         getch();
         break;
         
      default:
         puts("Tecla no valida!");
         break;
      }
   }while (toupper(ch) != 'S');
   
   return EXIT_SUCCESS;
}

TENGO 1 DUDAS...
como puedo acer para que cada vez que presiono una de las teclas "a", "d", "s", "w" me aparezca un texto diferente al anterior???

por ejemplo:
_En la primera vez que presione la tecla "a" me diga "opcion1", en la segunda vez "opcion5"
_En la primera vez que presione la tecla "d" me diga "opcion2", en la segunda vez "opcion6"
_Y asi sicesivamente...


Título: Re: duda
Publicado por: Ferno en 18 Diciembre 2011, 19:18 pm
Bueno, podés usar contadores. Si la cantidad de opciones que vas a tener por letra es finita, podés poner un contador dentro de cada case, y una condición de if (ya un switch-case dentro de otro me parece algo bastante feo :P).
Sino, el contador y la condición pueden estar fuera del switch-case, leer la letra que se apretó, ver la cantidad de veces que apretó dicha tecla, y actuar en base a ello!


Título: Re: duda
Publicado por: peterfly en 18 Diciembre 2011, 20:08 pm
me podrias decir como quedaria??? es que me ago un lio... lo e intentado i siempre me sale un error u otro....

gracias