Ayuda para utilizar las teclas F1 F2 F3 etc. Dev C++

Iniciado por pedro0620, 3 Septiembre 2016, 04:28 AM

0 Miembros y 1 Visitante están viendo este tema.

pedro0620

Estoy haciendo un menu donde el usuario eliga el nombre del archivo y pueda ingresar datos en el... El problema que me surgio es que tengo que utilizar las teclas de funcion para elegir las opciones:

F1 - Crear archivo
F2 - Ingresar datos
ESC - Salir

Ya tengo todo lo demas lo unico que ocupo es saber como utilizar esas teclas. Tengo entendido que con switch no se puede que es con puros if... O si se puede con switch?

Este es el codigo:

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
using namespace std;

FILE *archivoF;
char nombre[50];
char texto=' ';

void crear()
{
   cout<<"Ingrese el nombre del archivo: ";
    cin>>nombre;   
    strcat(nombre,".txt");                   /*Utilize la funcion strcat para concatenar el nombre que el usuario
                                              quiera darle al archivo con la extensión .txt porque en C
                                        no existe el operador concatenación (+) */     
    system("pause>null");

}

void escribir()
{
   archivoF=fopen(nombre,"w");
   if(archivoF==NULL)
   {
      
      cout<<"Error en la apertura";
      
   }
   
   cout<<"Ingrese el texto: (presione enter para finalizar): "<<endl;
   
   do
   {
      texto=getche();
      fputc(texto,archivoF);
      
   }while(texto!=13);
   
   fclose(archivoF);
}

void mostrar()
{
   
}

int main()
{
   int x;
   
      cout<<endl<<endl<<"\t\t\t Menu"<<endl<<endl;
           cout<<"\t[F1].-  Crear archivo. "<<endl;
           cout<<"\t[F2].-  Ingresar datos "<<endl;
           cout<<"\t[F3].-  Mostrar archivo "<<endl;
           cout<<"\t ESC.-  Salir "<<endl;
           cout<<"\tOpcion: ";
           cout<<endl;
           x=getch();
      
}


Si me pudieran ayudar se los agradeceria muchooo!

AlbertoBSD

NO USES CONIO.H

Para usar estas teclas hay que ver cuales son sus códigos hace años que las utilice pero no recuerdo sus codigos. Lo que si recuerdo es que cuando precionas estas teclas manda 2 valores el primero es 0 y el segundo el valor de la tecla en cuestión.

Te propongo esto:
x=getchar();
switch(x){
case 0://Teclas especiales... leer otra vez el valor
x=getchar();
printf("El valor de la tecla es %i",x);
break;
default://Otras teclas.
break;
}


Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

.rn3w.


AlbertoBSD


  • No es estándar
  • Solo sirve en Turbo C

En todo el código solo sirve para la funcion getch.

Por que no usar mejor getchar que si es estándar y se encuentra en stdio.h

Creo que el usuario tiene un pesimo maestro de programacion, en fin que se le puede hacer?


Repito NO USEN CONIO.H


Saludos?
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

.rn3w.


AlbertoBSD

Hola acabo de validar el siguiente codigo y no funciona, YA QUE EL CMD de WINDOWS procesa algunas Teclas Especiales FX y no las pasa al programa en ejecucion.

#include<stdio.h>

int main() {
char x;
x = getchar();
switch(x){
case 0: //Teclas especiales... leer otra vez el valor
x = getchar();
printf("El valor de la tecla es %i",x);
break;
default: //Otras teclas.
break;
}
}


Posiblemente funcione con getch y en Turbo C o algun otro entorno de 16 bits (NETA!?!?!?!) pero en windows 10 no funciono.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW