Problema en C: no borra pantalla cuando le toca

diego95

Tengo un problema. Resulta que pongo system("cls")para borrar pantalla, pero el último mensaje que debería aparecer antes de la limpieza no aparece hasta que se borra todo, y en ese momento aparece como el primer mensaje una vez la pantalla está borrada.

Saben alguna solución para esto? He probado imprimiendo espacios al final, pero no funciona. Gracias :)

inkiet

Prueba a "forzar" la escritura, con fflush(stdout), antes de borrar la pantalla.

1 1 respuesta
diego95

#2 Ahora lo muestra unas décimas de segundo y se borra, lo que me parece muy extraño porque le he puesto un Sleep de bastante tiempo.

M

Revisa que la funcion de borrar sea la ultima en ejecutarse. O si la funcion que escribe esa ultima linea se ejecuta por algun motivo despues del borrado.

Podrias poner el trozo de codigo que te esta dando problemas y seria mas facil ver que falla.

1
inkiet

Pon el trozo de código a ver.
Ten en cuenta una cosa, cuando envías algo a la salida estandar, por ejemplo, con un printf, no lo estás imprimiendo en pantalla según lo haces, se guarda en un buffer y cuando al SO le viene bien es cuando lo imprime.

2
diego95

Vale, ya se donde está el fallo, poniendo fflush(stdout) justo después del último mensaje de cada opción y arreglado. Muchas gracias a los 2 :)

1 respuesta
M

#6 Si estas aprendiendo a programar no te conformes con que funcione sin mas, intenta entender por que. Si es curro ya tu sabeh, si funciona no lo toques.

1 1 respuesta
diego95

#7 De momento me quedo con la opción porque es un trabajo que tengo que enviar hoy XD. Pero ahora que hay una solución puedo investigarlo más tarde con más tiempo.
Gracias igualmente ;)

Usuarios habituales

  • diego95
  • Mescalito
  • inkiet