Título: Problema con un void Publicado por: grossgore en 3 Mayo 2017, 23:11 pm Buenas tengo el siguiente problema... tengo un proceso de registro y toda la cuestion y hay un problema que tengo cuando pregunta si desea agregar otra persona de que cuando presiona s se cierra el programa y no me vuelve a ejecutar el proceso... esto sucede cuando llamo a una funcion despues de guardar los datos suministrados en un archivo, el proceso funciona correctamente cuando no llama a la funcion con esto me refiero a que si presiono s me vuelve a ejecutar el programa, tanto el proceso como la funcion funcionan correctametnes por separados. No se si me explique bien pero mas o menos di a entender mi problema Código
Título: Re: Problema con un void Publicado por: MAFUS en 4 Mayo 2017, 00:08 am Limpia el buffer de entrada poniendo después del scanf
Código: while(getchar()!='\n'); Título: Re: Problema con un void Publicado por: dato000 en 4 Mayo 2017, 16:10 pm Problema tipico de scanf, no limpia el buffer de memoria y provoca ese tipo de inconvenientes, desde hace mucho se considera a scanf como una función rota, o simplemente de las malas.
Considera usar funciones más eficientes como fgets o sscanf, en los que tienes que declarar espacios de memoria para almacenar el buffer dedicado para pasar la función y realizar una lectura apropiada de la variable. Ejemplo de fgets: Código
Ejemplo de sccanf (un poco más enredado, pero pues su uso es para obtener una información determinada que luego se muestra al usuario, no para validación ni para control de flujos como ciclos while) Código
O pues, si quieres algo simple, para un caracter, usa getchar(), aunque también no es muy recomendable acostumbrarse, pero bueno. Código
|