Retroceder   Foros de Emudesc > Tecnología > Informática > Programación

 
 
Herramientas
  #1  
Antiguo 14-ago-2011, 23:52
Advanced Member
 
Fecha de Ingreso: marzo-2009
Ubicación: En algún lugar cerca de Springfield
Mensajes: 454
sabelo-homerofan se está dando a conocer
Predeterminado [C] ¡Ayuda!

Bueno, antes que nada, hola a todos.

El año pasado comencé mis estudios de bachillerato, específicamente en el área de Informática.

Como parte del proyecto de programación de este año, tenemos que crear un programa que maneje archivos, estructuras, funciones, etc.
Esto no es lo complicado (sé hacerlo). En realidad, la complicación cae en que el programa tiene que ser a gusto, por lo que lo que quiero hacer es un menú con opciones seleccionables mediante las flechas.

Es decir, algo como ésto:

Código:
MENÚ PRINCIPAL:

-> Abrir archivo
    Crear archivo
     Eliminar archivo
Es decir, un menú interactivo en el que se pueda cambiar de opción utilizando las flechas del teclado.

Si alguien puede decirme cómo hacerlo, estaré muy agradecido.



Última edición por sabelo-homerofan fecha: 14-ago-2011 a las 23:55.
  #2  
Antiguo 15-ago-2011, 08:05
Jr. Member
 
Fecha de Ingreso: noviembre-2009
Mensajes: 296
betokscr se está dando a conocer
Predeterminado Re: [C] ¡Ayuda!

Se puede hacer con las librerías conio.h(windows) o curses.h(GNU/Linux), no se si hay alguna forma de hacerlo de acuerdo al ANSI de C, pero si que se puede hacer con las librerías que te dije anteriormente:

Con conio:
[SPOILER]
Código PHP:
#include <stdio.h>
#include <conio.h>

int main()
   {
   
char letra;

   
clrscr();
   
printf"Letra: " ); 
   
fflushstdout );
   
letragetch();
   
printf"\n\nPusiste una %c"letra );
   
printf"\n\nPulsa para salir.." );
   
getch();
   return 
0;
   } 
[/SPOILER]
fuente:http://foro.elhacker.net/programacio...-t28520.0.html

Con curses:
[SPOILER]
Código PHP:
#include <curses.h>
#include <stdio.h>

int main(void)
{
    
int ch 0;

    
/* Basic initialization of curses lib */
    
initscr();
    
cbreak();
    
noecho(); /* Set this for interactive programs. */
    
nonl();
    
intrflush(stdscrFALSE);
    
keypad(stdscrTRUE);
    
    
/* Ready to rumble! */
    
printw("Type a key. Use 'q' to quit\n");
    while (
ch != 'q') {
        
ch getch();
        
printw("You typed: '%c' which is ASCII %d\n", (charchch);
    }

    
/* Cleanup time */
    
endwin(); 
    return 
0;

[/SPOILER]
fuente:http://forums.devshed.com/c-programm...ux-565266.html

Si bien son ejemplos muy básicos, tu veras como los adaptas a tu aplicación!

Saludos

Última edición por betokscr fecha: 15-ago-2011 a las 08:08.
  #3  
Antiguo 16-ago-2011, 20:28
Advanced Member
 
Fecha de Ingreso: marzo-2009
Ubicación: En algún lugar cerca de Springfield
Mensajes: 454
sabelo-homerofan se está dando a conocer
Predeterminado Re: [C] ¡Ayuda!

Bueno, si bien sé cómo capturar caracteres con getch, ya intenté hacerlo para capturar el ASCII de las flechas o algo parecido, pero cada vez que presiono una, el programa se cierra.

Aclaro también que uso el Turbo C++ 3.0 (estándar en el instituto para programar)
  #4  
Antiguo 16-ago-2011, 21:34
Avatar de felomeno
bald Tod
 
Fecha de Ingreso: abril-2007
Mensajes: 7,503
felomeno es un usuario distinguidofelomeno es un usuario distinguidofelomeno es un usuario distinguido
Predeterminado Re: [C] ¡Ayuda!

Código PHP:

#include <stdio.h>  // print, scanf
#include <conio.h>  // getch, getche, getchar, etc.

int main()
{
    
char cTecla;

    
printf"\r\nPresione un Tecla ..." );

    while( 
cTecla != char(27) ) //  != ESC
    
{
       
cTecla getch(); 

       if( 
cTecla == char(13) )
          
printf("\r\n Presiono ENTER");

       if( 
cTecla == char(9) )
          
printf("\r\n Presiono TAB");

       if( 
cTecla == char(72) ) 
          
printf("\r\n Presiono Flecha Arriba");
       if( 
cTecla == char(75) ) 
           
printf("\r\n Presiono Flecha Izquierda");
       if( 
cTecla == char(77) ) 
           
printf("\r\n Presiono Flecha Derecha"); 
       if( 
cTecla == char(80) )
          
printf("\r\n Presiono Flecha Abajo");

       

           
    }
  
    return 
0// ANSI C/C++

Esos son lso códigos Ascii de las flechas y el enter, probé el programa pero no sé si tengas alguna duda o problema.
  #5  
Antiguo 16-ago-2011, 23:27
Advanced Member
 
Fecha de Ingreso: marzo-2009
Ubicación: En algún lugar cerca de Springfield
Mensajes: 454
sabelo-homerofan se está dando a conocer
Predeterminado Re: [C] ¡Ayuda!

¡Me funcionó, gracias!

Sólo me faltaba conocer esa parte de "cTecla==char(x)".

Muchas gracias.
 




La franja horaria es GMT +2. La hora actual es: 01:21.


Alojamiento web 1&1. Powered by vBulletin®


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93