C/Visual C - Problemas c , Ayuda

 
Vista:

Problemas c , Ayuda

Publicado por Juan José (1 intervención) el 29/12/2000 00:00:00
Necesito alguien que por favor me pueda explicar que forma hay de poder utilizar las flechas para moverse dentro de la pantalla en un programa de c ejecutandose
muchas gracias
JJ
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿Seguro que eres programador?

Publicado por Fabián Sierra Carvajal (50 intervenciones) el 29/12/2000 00:00:00
Una entrada cualquiera de teclado (sea o no una tecla especial, o de flecha) puede leerse mediante
getch() (no definida en ANSI; está en Borland TurboC 2.0 y superiores). Al leerse con getch(), las teclas de flecha retornan los carácteres M,P,K y H. Ahora bien ,antes de leerse el caràcter, como en toda tecla especial, se lee un cero. A continuaciòn, un pequeño segmento de código de ejemplo (en otra respuesta).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Seguro que eres programador?

Publicado por gabriel (4 intervenciones) el 30/12/2000 00:00:00
Sabes como programar un lector optico en Visual c++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Código fuente

Publicado por Fabián Sierra Carvajal (50 intervenciones) el 29/12/2000 00:00:00
El siguiente segmento de código lee los carácteres de flechas.

switch(getch()){
case 0: /*Si es tecla especial*/
switch(getch()){
case ´M´: bajar();break;
case ´H´: subir();break;
case ´P´: derecha();break;
case ´K´: izquierda();break;
}
}
¡Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Código fuente

Publicado por Vixxen (2 intervenciones) el 31/12/2000 00:00:00
REALMENTE ADMIRABLE!!!´Y QUE MODALES!!!
TU REALMENTE ERES EL MEJOR PROGRAMADOR QUE HE LEIDO!!!
Que te parece si pones Titulos menos ofensivos..?
Viste el foro hacker? Con algo como lo tuyo empezo todo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

aun mas practico

Publicado por DArthko (2 intervenciones) el 01/01/2001 00:00:00
en el codigo pusiste ´m´ y eso ...
pero seria mejor poner el valor de las teclas
ejemplo:

switch(opcion)
{
case 72:
bajar();
break;

case 80:
subir();
break;

case 77: /* o 75 no me acuerdo ahorita */
derecha();
break;

case 75: /* o 77 */
izquierda();

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aun mas practico ?????????

Publicado por Vixxen (1 intervención) el 01/01/2001 00:00:00
Hola, quisiera aclares porque es "mejor" USAr los valores numéricos y no la "m" y todo ESO...
Desde ya muchas gracias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aun mas mas mas practico

Publicado por CaFcO (40 intervenciones) el 04/01/2001 00:00:00
Hola, saludos, he visto que han dado diversas soluciones compañeros, dejenme decirles que estas son buenas aunque no eficientes pues estas necesitan de anidar un switch mas, esto funciona bien pues solo se trata de mover el cursor, pero cuando se trate de usar esas letras, tendran un ligero problema.

Por lo que les doy una solucion mas confiable sin que haya problema de repeticion de valores en uso de las teclas pues como lo mencionaban las teclas del cursor estan asociadas con una tecla del abecedario, bueno, aqui les anexo el codigo fuente de como usar los valores, claro que estos se veran algo raros pero funcionan:

codigo:

#include "bios.h" /*Archivo para los valores de las teclas con el bioskey*/
#include "conio.h"
#include "stdio.h"

main(){
int key;
clrscr();
do{
key=bioskey(0);
switch (key){
case 20480:printf("\nPresionaste cursor abajo");
break;
case 18432:printf("\nPresionaste cursor arriba");
break;
case 19200:printf("\nPresionaste cursor izq.");
break;
case 19712:printf("\nPresionaste cursor der.");
break;
}
}while (key != 283); /*cuando presiones ESC se termina*/
return 0;
}

¡suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aun mas practico ?????????

Publicado por DArthko (1 intervención) el 05/01/2001 00:00:00
Bueno la neta soy principiante i estudiante
pero creo que asi, al correr tu programa
y el usuario teclee la ´m´ o todo ESO no haga
lo k se supone k las flechas del teclado aran
la verdad k no se mucho Mr. SARCASTICO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar