Hola a todos!!
bien recien haciendo unas pequeñas pruebas me di cuenta que en ciertas situaciones fgets con stdin... me ensucia el buffer mas especificamente cuando agrego mas caracteres de los que espera doy un ejemplo
obviamente se puede solucionar haciendo que cad sea mas "grande" como de 120 caracteres, pero quisiera saber alguna manera de no recurrir a eso sino. evitar que el buffer quede sucio....
nada de fflush
EDITADO:
Bueno recién probando encontré que haciendo esto funciona :
aunque me vuele a que es algo parecido a fflush
espero respuestas, gracias!!!
bien recien haciendo unas pequeñas pruebas me di cuenta que en ciertas situaciones fgets con stdin... me ensucia el buffer mas especificamente cuando agrego mas caracteres de los que espera doy un ejemplo
Código (c) [Seleccionar]
#include <stdio.h>
int main(int argc, char **argv)
{
char cad[5];
fgets (cad, sizeof(cad), stdin); //si ingresamos "hola mundo"
puts (cad); // imprime "hola"
fgets (cad, sizeof(cad), stdin);// se lo saltea (buffer sucio)
puts (cad); // imprime "mun"
return 0;
}
obviamente se puede solucionar haciendo que cad sea mas "grande" como de 120 caracteres, pero quisiera saber alguna manera de no recurrir a eso sino. evitar que el buffer quede sucio....
nada de fflush
EDITADO:
Bueno recién probando encontré que haciendo esto funciona :
Código (c) [Seleccionar]
setbuf(stdin,NULL);
aunque me vuele a que es algo parecido a fflush
espero respuestas, gracias!!!