printf La función en c no siempre imprime la salida en la pantalla. Por ejemplo, si olvida poner \ n al final de la cadena que está imprimiendo, a veces no obtiene el o/p. ¿Hay algunas otras condiciones cuando printf no imprime? Recuerdo que alguien dijo que hay 7 de esas condiciones. ¿Pueden ayudarme?¿Cuándo no se imprime printf?
Respuesta
La salida estándar es una transmisión en búfer, no está garantizado que se enjuague a menos que se coloque una nueva línea, la transmisión esté cerrada o el programa salga normalmente. Si el programa sale anormalmente, es posible que la transmisión no se descargue. La salida estándar está almacenada en línea, por lo que una línea nueva la vaciará. Hay almacenamientos intermedios que no se nivelarán con una nueva línea.
Sé que esta es una pregunta muy antigua, pero ¿qué tipo de cosas pueden inhibir un 'printf' de impresión? – Mouin
Como user1214634 dicho stdout está almacenado en el búfer y solo se imprime en la pantalla bajo ciertas condiciones. Si desea forzarlo a imprimir puede llamar a fflush (stdout)
no es que printf
no siempre se imprimirá, es que no se garantiza que se imprima inmediatamente. Esto significa que si lo está utilizando con fines de depuración, no puede garantizar que sucederá exactamente cuando lo haga en el código. Si desea asegurarse de que se imprime exactamente cuando lo dijo, llame al fflush(stdout)
.
Nota: Por lo general, no desea utilizar fflush(stdout)
a menos que se está depurando, es realmente muchos recursos y si se preocupan por el rendimiento de velocidad en todo lo que tiene el potencial de reducir la velocidad.
No es otro caso especial yo sólo encontré:
Mis variables son:
line="-24 hours"
line2="24 hours"
y tratar
printf $line
printf $line2
Ni va a funcionar. El segundo suelta la palabra "horas" y el primero confunde -24 como indicador.
Por lo tanto, cada vez que use printf que eliminará todos los caracteres peligrosos, si es posible, mediante el uso de
sed -r "s/[/\ #;&~]/_/g"
deseo códigos de printf pueden ser mejorados por el desarrollador.
Tener cuidado
Estoy confundido, ¿cómo es esto c? –
- 1. ¿Por qué printf() no imprime nada antes de dormir()?
- 2. ¿Cuándo se imprime el formato en Common Lisp?
- 3. Imprime un '+' inicial para números positivos en printf
- 4. printf, sprintf imprime al menos dos lugares decimales
- 5. Cuándo usar printf/scanf vs cout/cin?
- 6. ¿Cuándo deja de imprimirse printf ("% s", char *)?
- 7. ¿Por qué no se imprime mi cadena?
- 8. putStrLn no se imprime en la consola
- 9. ¿por qué este programa c no imprime la primera instrucción printf?
- 10. ¿Por qué se imprime 0 (cero) sin "0x" al comienzo con el formato C printf "% # x"?
- 11. ¿Por qué printf no imprime solo un byte al imprimir hexadecimal?
- 12. Canvas.drawText (...) no imprime linebreak
- 13. JUnitCore.runClasses no imprime nada
- 14. DBMS_OUTPUT.PUT_LINE no imprime
- 15. echo "-e" no imprime nada
- 16. Xdocument no imprime la declaración
- 17. Sweave no imprime caracteres localizados
- 18. LD_PRELOAD no funciona para printf
- 19. ToStringBuilder no se imprime el contenido de los objetos anidados
- 20. haciendo eco en shell -n no se imprime correctamente
- 21. System.out.println no se imprime en la consola de netbeans
- 22. ¿Por qué no se imprime el trabajo en una lambda?
- 23. ¿Por qué este código se imprime dos veces?
- 24. ¿Cómo se imprime un número limitado de caracteres?
- 25. Si char c = 0x80, ¿por qué imprime printf ("% d \ n", c << 1) output -256?
- 26. Cuando se imprime desde un System.out.println JSP?
- 27. NSLog no imprime en la consola
- 28. Qt salida estándar. cout no imprime
- 29. ¿Cómo se imprime un objeto, llamado * (asterisco)?
- 30. Ruby objeto se imprime como puntero
¿Seguro que está pensando en 'printf', y no las condiciones previas del apocalipsis? –
@KerrekSB ¿O tal vez los signos de una tarea inminente con 7 elementos? – cnicutar
Esto parece específico de la plataforma, depende del dispositivo de salida. ¿Qué sistema operativo y sistema estás usando? –