SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: cremix en Sábado 20 de Junio de 2009, 13:22

Título: Caracter Enter y -1
Publicado por: cremix en Sábado 20 de Junio de 2009, 13:22
Hola:

Estoy haciendo un programita en el que si introduces un -1 vas a un menu y si introduces Enter vas a otro. Sé que el Enter es el 13 pero ¿cómo puedo comparar un caracter con un entero?
Título: Re: Caracter Enter y -1
Publicado por: Eternal Idol en Sábado 20 de Junio de 2009, 15:15
Código: Text
  1. if (elChar == (char)13)
  2. {
  3. }
  4.  
Título: Re: Caracter Enter y -1
Publicado por: cremix en Sábado 20 de Junio de 2009, 17:49
Sigo sin poderlo conseguir.

He hecho la siguiente prueba

Código: C++
  1.  
  2. char cont;
  3.  
  4. scanf("%c",&cont);
  5.  
  6. if(cont == (char)13)
  7.   cout << "Es un ENTER" << endl;
  8. else
  9.   cout << "Es un -1" << endl;
  10.  

Sigo sin saber como hacer el scanf para que pueda leer un -1 o un Enter y poder diferenciarlos. Por cierto, si ejecuto el codigo anterior, al introducir un ENTER, me sale la respuesta del else en vez de la del if.
Título: Re: Caracter Enter y -1
Publicado por: Eternal Idol en Sábado 20 de Junio de 2009, 18:01
Bueno, usa getchar y n (10) no r(13).
Título: Re: Caracter Enter y -1
Publicado por: cremix en Sábado 20 de Junio de 2009, 18:24
Vamos a ver. He escrito lo siguiente

Código: C++
  1. if(getchar() == (char) 10)
  2.  {
  3.   cout << "Es un ENTER" << endl;
  4.  }
  5.  else if(getchar() == -1)
  6.  {
  7.    cout << "Es un -1" << endl;
  8.  }
  9.  else
  10.  {
  11.      cout << "Es otro caracter" << endl;
  12.  }
  13.  

Y por fin el ENTER ya me lo reconoce. Muchas gracias. Pero, ¿que hago con el -1?
Título: Re: Caracter Enter y -1
Publicado por: Eternal Idol en Sábado 20 de Junio de 2009, 18:26
A ver, -1 tal como lo escribiste es un numero solo (255/FF para un caracter), si lo que queres es que alguien escriba "-1" entonces necesitas al menos DOS caracteres, el - y el 1 ... tal vez si plantearas el objetivo seria mas simple dar con la solucion ...
Título: Re: Caracter Enter y -1
Publicado por: cremix en Sábado 20 de Junio de 2009, 18:33
Mi codigo, no la prueba de antes, sino el del programa que estoy haciendo, tiene dos opciones:
opción 1: Introducir un ENTER para ir al menu siguiente.
opción 2: Introdcuir un -1 para volver al menú anterior

¿Es esto lo que querías saber?
Título: Re: Caracter Enter y -1
Publicado por: Eternal Idol en Sábado 20 de Junio de 2009, 18:52
Bueno, en este caso lo mejor me parece leer una linea:

Código: Text
  1. char line[80];
  2. fgets(line, sizeof(line), stdin);
  3. if (*line == 10)
  4. {
  5.   //enter
  6. }
  7. else
  8. {
  9.   int numero = 0;
  10.   sscanf(line, "%d", &numero);
  11.   if (numero == -1)
  12.   {
  13.     //-1
  14.   }
  15. }
  16.  
Título: Re: Caracter Enter y -1
Publicado por: cremix en Sábado 20 de Junio de 2009, 19:02
Lo acabo de probar y me viene perfectamente. Muchísimas gracias. Además así también puedo saber si lo que has escrito no es ni un n o un -1. Gracias  :beer:   :D
Título: Re: Caracter Enter y -1
Publicado por: Eternal Idol en Sábado 20 de Junio de 2009, 19:04
De nadas  B)