Cita:
Iniciado por RGT 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.