Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/11/2015, 03:10
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 3 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por RGT Ver Mensaje
Entonces, quiero que el programa siga pidiendo el número de letras siempre y cuando:
  • El dato ingresado no sea un número.
  • Exista una palabra con la cantidad de letras.

Cómo hago esas dos validaciones dentro del WHILE?, no se me ocurre otra cosa y he dado mucha cabeza en este asunto.
Ahí tienes un problema de razonamiento.

Lo que tu esperas realmente es que el bucle se repita siempre y cuando se cumpla, al menos, una de estas condiciones:
  • El dato ingresado no sea un número
  • NO exista una palabra con la cantidad de letras
Mientras que tu programa repite el bucle siempre y cuando se cumplan estas condiciones:
  • El dato ingresado SI sea un número
  • Exista una palabra con la cantidad de letras
Es decir, el bucle se va a repetir siempre que introduzcas un dato válido...

Con esto deberías ser capaz de arreglar tu problemilla con el programa.

Por cierto, no tiene demasiado sentido que la función ValidarPalabra reciba un ifstream. Básicamente porque no aprovecha la información que dicho ifstream pueda tener.... básicamente lo utilizas para abrir un fichero, leerlo y cerrarlo de nuevo.

Si la función esperase que el fichero estuviese ya abierto entonces sí tendría sentido que recibiese el stream como parámetro, ya que así podrías usar la misma función con diferentes ficheros... pero con el código actual te puedes ahorrar ese parámetro y declarar el stream dentro de la función.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.