El código debe imprimir inmediatamente la cadena “Iniciando asignación de redes…” luego, después del bucle, debe imprimir “HECHO”.
En su lugar, el programa realiza primero el bucle y luego imprime la cadena “Iniciando asignación de redes… HECHO” ¿por qué sucede? ¿Cómo puedo resolver esto?
pb2q
El flujo de salida stdout está almacenado en el búfer de forma predeterminada, por lo que si desea una salida inmediata, deberá vaciar la secuencia de salida, utilizando fflush – o hacer que se imprima una nueva línea en el printf:
Tenga en cuenta que también puede controlar el almacenamiento en búfer en un nivel de puntero de archivo usando el setbuf función de stdio.h:
setbuf(stdout, NULL);
El segundo argumento a setbuf es un búfer proporcionado por la persona que llama que se utilizará para almacenar en búfer la salida a la secuencia. Pasar NULL indica que se deshabilitará el almacenamiento en búfer y es equivalente a:
setvbuf(stdout, NULL, _IONBF, 0);
que también deshabilita el almacenamiento en búfer en la secuencia especificada.
la salida a stdout está almacenado en búfer, así que agregue
fflush(stdout);
después de la printf llamada para vaciar el contenido. Por lo general, agregar un carácter de nueva línea también vacía el búfer, pero eso puede no ser deseable en su caso.
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información