Ayuda con algoritmo recursivo y fflush(stdin)

Iniciado por Beginner Web, 4 Julio 2018, 22:29 PM

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

Beginner Web

Hola a todxs queria saber si este algoritme esta recursivamente bien , y otra consulta es para que sirve , es viable el uso de fflush(stdin) en limpieza del buffer, estoy algo indecise, gracias a todxs


Código (cpp) [Seleccionar]

void como_la_realidad(int vida)
{
if(vida<=1)
cout << "Entrando en el sueño";
else
como_la_realidad(vida-1);
cout << " del sueño";
}
7w7

MAFUS

En lo referente a fflush(stdin): el estándar dice que fflush solo es para flujos de salida así que depende del compilador que funcione o no. Cómo norma general no deberías usarlo.

En cuanto a la recursividad: sí, está bien hecha. Tiene una condición de parada, una llamada que actualiza un estado para que active la condición de parada en el momento oportuno y un trabajo a cumplir.

Lo que hace es escribir en pantalla: Entrando en el sueño del suelo... repitiendo tantas veces del sueño como se hayan indicado en el argumento de llamada.

Por cierto, no destroces el lenguaje con x y e. El español es un de los lenguajes más ricos que existen.

Beginner Web

#2
Cita de: MAFUS en  4 Julio 2018, 23:27 PM
En lo referente a fflush(stdin): el estándar dice que fflush solo es para flujos de salida así que depende del compilador que funcione o no. Cómo norma general no deberías usarlo.

En cuanto a la recursividad: sí, está bien hecha. Tiene una condición de parada, una llamada que actualiza un estado para que active la condición de parada en el momento oportuno y un trabajo a cumplir.

Lo que hace es escribir en pantalla: Entrando en el sueño del suelo... repitiendo tantas veces del sueño como se hayan indicado en el argumento de llamada.

Por cierto, no destroces el lenguaje con x y e. El español es un de los lenguajes más ricos que existen.


Entonces es mejor usar cin.ignore(); para evitar el error con ingreso de cadenas? te pongo este ejemplo, porque luego de ingresar la variable entera dni, me guarda el ENTER en el buffer

Código (cpp) [Seleccionar]

main()
{ int dni;
  tcad nombre;
  cout << "Ingrese DNI: ";
  cin >> dni;
  //fflush(stdin); Aca viene el error
  cout << "Ingrese nombre: ";
  gets(nombre);

7w7

MAFUS

Sí, o cin >> ws para eliminar los espacios en blanco. Hay unas cuantas formas de hacerlo.