Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: peterfly en 12 Diciembre 2011, 14:33 pm



Título: ayuda... tutorial getch
Publicado por: peterfly en 12 Diciembre 2011, 14:33 pm
HOLA A TODOS

me podrias dicir algun libro que explique como se usan los getch o por lo menos algun tutorial que lo explique???

GRACIAS

EI: juntando mensajes.

se me olvido decirlo...

en especial, para usar el
Código:
tecla=getch();
que si no me equivoco es para que al pulsar por ejemplo la letra "a" canvie un printf por otro (solo pulsando la letra "a")


Título: Re: ayuda... tutorial getch
Publicado por: Ferno en 12 Diciembre 2011, 15:12 pm
En realidad, getch() es una función de la librería conio.h (la cual queremos muuuuuucho por aquí :S).
Esta función lo que hace es esperar a que el usuario pulse una tecla para continuar el programa. Mucha gente lo que hace es tomar esa función en introducirla antes de cerrar el programa, para simular una "pausa".

Sobre la librería conio.h, te recomiendo leer este hilo: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Salud!

PD: es cambie
EDIT: PD2: Creo que no hace falta aclarar pero por las dudas, para estos casos, Google es tu mejor amigo :P


Título: Re: ayuda... tutorial getch
Publicado por: peterfly en 12 Diciembre 2011, 20:02 pm
lo que me referia es para acer algo asi:
Código:
# include <conio.h>

 int main ()
 {
   _cprintf ("1. diferentes obras para la consola de E / S, baja: \n");
   _getch ();
   _cprintf ("2. data:. \n");
   _getch ();
   _cprintf ("3. va hacia abajo y atrás:.\n");
   _getch ();
    return 0;
 }

per envez de que pase de un "_cprintf" a otro con cualquier letra... que sea solo en una letra especifica

como por ejemplo con la letra "a"que pase de:

Código:
 _cprintf ("1. diferentes obras para la consola de E / S, baja: \n");
   _getch ();
al
Código:
_cprintf ("2. data:. \n");
   _getch ();

con la letra "s" que pase de:
Código:
_cprintf ("2. data:. \n");
   _getch ();
al
Código:
_cprintf ("3. va hacia abajo y atrás:.\n");
   _getch ();

y finalmente con la letra "d" que pase del:
que pase del
Código:
_cprintf ("1. diferentes obras para la consola de E / S, baja: \n");
   _getch ();
al
Código:
_cprintf ("3. va hacia abajo y atrás:.\n");
   _getch ();

Y GRACIAS POR EL ENLAZE


Título: Re: ayuda... tutorial getch
Publicado por: Firos en 12 Diciembre 2011, 23:07 pm
Si lo que quieres es hacer un menú estas un poco perdido.

Deberías hacer un bucle que leyera continuamente, es decir, con un while.

Ejemplo:
Código
  1. do {
  2.  
  3. } while ($a != 's' || $a !='S') ;
  4.  

Con eso y metiendo el caracter que recibas del teclado en la variable $a conseguirás que cuando se pulse la tecla s o S se salga del bucle, finalizando el programa.

Dentro de eso, ya metes el menú.

Código
  1. printf("OpcionA.........\n");
  2. printf("OpcionB.........\n");
  3. $a=getch()
  4. if($a == 'a')
  5. {
  6. ### lo que tu quieras, borras la pantalla y metes un menu diferente, el que vaya dentro de la primera opcion ###
  7. }
  8. else if($a == 'b')
  9. {
  10. ### lo que tu quieras, borras la pantalla y metes un menu diferente, o realizas una accion o lo que quieras ###
  11. }
  12.  

De tal modo que te quedaria asi:

Código
  1. do {
  2. printf("OpcionA.........\n");
  3. printf("OpcionB.........\n");
  4. $a=getch();
  5. if($a == 'a')
  6. {
  7. ### lo que tu quieras, borras la pantalla y metes un menu diferente, el que vaya dentro de la primera opcion ###
  8. }
  9. else if($a == 'b')
  10. {
  11. ### lo que tu quieras, borras la pantalla y metes un menu diferente, o realizas una accion o lo que quieras ###
  12. }
  13. } while ($a != 's' || $a !='S') ;
  14.  

No se si es lo que querias, de todas formas con esto puedes hacer menus jugando con los "do while", "while", "if"...

Si lo que querias era provocar una interrupcion y que solo se mostrara el segundo punto si cuando sale el mensaje del punto 1 y pulses la tecla "a" puedes hacerlo jugando un poco con los menus anteriores.

Puede ser que me esté equivocando en algo con la sintaxis, hace mucho que no toco nada de C, pero vamos, si no funciona, por ahi van los tiros.