Título: Duda de switch y problema al ejecutar Publicado por: Mario Olivera en 18 Mayo 2015, 20:40 pm Hola gente, tengo unas dudas con un switch y quisiera saber como hacer para que al ingresar eof (ctrl + z en windows, ctrl + d en linux) no se me cierre el programa y se ejecuten las otras funciones miembro.
Mi duda del switch es la siguiente en la funcion miembro recibirCalificaciones si se ingresa por ejemplo " a" (espacio,y letra a), toma calificacion como "a", y quisiera saber por que, porque creo yo que tendria que entrar en default y no, se que evita los saltos de lineas, espacios y espacios tabulares, pero quisiera saber que pasa en ese cuerpo cuando tenemos un espacio y letra a. Desde ya muchas gracias y Saludos! Bueno este es el código: main.cpp Código
LibroCalificaciones.h Código LibroCalificaciones.cpp Código
Título: Re: Duda de switch y problema al ejecutar Publicado por: NOIS en 20 Mayo 2015, 13:37 pm Respecto a lo de (Ctrl+z) no puedes evitar que termine el programa ya que es el atajo de teclado para interrumpir la ejecución de cualquier comando, función o programa en la terminal.
En el caso del switch, si pones "a a" solo leerá "a", ya que cin.get() no admite espacios para una misma lectura, en su defecto, para leer un linea utiliza cin.gets() para leer cadenas. Saludos! Título: Re: Duda de switch y problema al ejecutar Publicado por: Mario Olivera en 20 Mayo 2015, 15:45 pm Entonces en un while nunca se pone EOF porque terminaria el programa sin ejecutar lo que está después de la estructura while?
con respecto al switch mi duda es sobre los espacios, que no pide de nuevo la calificacion si se escribe " a" Título: Re: Duda de switch y problema al ejecutar Publicado por: ivancea96 en 20 Mayo 2015, 20:51 pm istream::get() coge solo un caracter del buffer de entrada.
Si introduces " a", cin.get() cogerá primero ' ' y luego 'a'. Código
Ese case hará break al switch, con lo que el bucle pedirá nueva letra ('a'). |