Hoy en mi entrevista, el entrevistador le preguntó: printf es una función y cada función devuelve algo; int, void, float, etc. Ahora, ¿qué devuelve printf ya que es una función?¿Qué devuelve printf?
Respuesta
int
. En caso de éxito, se devuelve la cantidad total de caracteres escritos. En caso de falla, se devuelve un número negativo.
No todos función devuelve algo, lo cual se indica mediante el uso de void
:
void function_returns_nothing(void);
printf
es una función (declarada en <stdio.h>
) y devuelve un int
, que es el número de caracteres emitidos. Si ocurre un error, el número es negativo.
printf()
's de referencia desde MSDN:
Devuelve el número de caracteres impresos, o un valor negativo si se produce un error.
Para añadir un refinamiento de los detalles finos otras respuestas:
printf()
devuelve un int
, sin embargo, hace que indican transmite vs impresos escritos/ personajes?
La función
printf
devuelve el número de caracteres transmitidos , o un valor negativo si se produjo un error de salida o de codificación. C11dr §7.21.6.3 3 (el subrayado es mío)
En caso de éxito, el número transmitida se devuelve. stdout
es típicamente tamponada, por lo que el número de caracteres impresos no puede considerarse realizada o fallan hasta más tarde.
Cuando int printf()
tiene problemas, por diversas razones, devuelve un número negativo. El número de caracteres transmitidos no se conoce.
Si se produce un éxito tras fflush(stdout)
, entonces el valor no negativo de printf()
es sin duda el número impresa.
int transmitted = printf(......);
int flush_retval = fflush(stdout);
int number_certainly_printed = -1; // Unknown
if (transmitted >= 0 && flush_retval == 0) {
number_certainly_printed = transmitted;
}
Tenga en cuenta que la "impresión" de un '\n'
normalmente vuelca stdout
, pero no se especifica incluso esa acción.
What are the rules of automatic flushing stdout buffer in C?
- 1. ¿Qué devuelve malloc (0)?
- 2. ¿Qué devuelve una tarea?
- 3. ¿Qué significa "%. * S" en printf?
- 4. ¿Por qué GetCurrentProcess devuelve -1?
- 5. ¿Por qué printf() es una función impura?
- 6. "printf" en microcontrolador, ¿para qué sirve?
- 7. ¿Qué significa "% .6d" significa en printf
- 8. ¿Qué significa printf (_ ("hello, world \ n"))?
- 9. ¿Por qué printf funciona con cadenas gestionadas?
- 10. ¿Qué es c printf% f precisión predeterminada?
- 11. ¿Por qué 'fopen' devuelve un puntero NULL?
- 12. ¿Qué devuelve request.getParameter?
- 13. ¿Qué devuelve el dojo.query()?
- 14. ¿Qué devuelve wave.readframes?
- 15. ¿Qué devuelve int.class
- 16. ¿Qué devuelve CGColorGetComponents()?
- 17. ¿Qué devuelve setTimeout?
- 18. ¿qué devuelve PHP() return
- 19. ¿Qué devuelve classname.class?
- 20. ArrayAdapter.getPosition (item) Devuelve ¿Qué?
- 21. qué parseJSON devuelve null
- 22. F # printf cadena
- 23. c printf flotado firmado
- 24. printf usando la pila?
- 25. ¿Por qué main no devuelve 0 aquí?
- 26. printf y double double
- 27. formato printf en .NET
- 28. ¿Cuál es la diferencia entre printf ("% i") y printf ("% d")
- 29. Error inexplicable en bash: el comando printf dentro de una secuencia de comandos devuelve "número inválido"
- 30. ¿Por qué navigator.appCodeName devuelve Mozilla?
Si una función 'void' no devuelve nada" o "returns' void'" es una cuestión de preferencia lingüística. – AnT
Esta es una pregunta de la entrevista muy mal: nadie debe suponerse que recordar los detalles de cualquier biblioteca, existen documentaciones para eso!Esto significa que podrías tener algo de suerte si no consigues el trabajo. –
pero conseguí el trabajo y acepté la carta de oferta ... y no sé si es bueno o malo, pero es Adobe. Estoy pasado de 2009 y estoy feliz de tener un trabajo en esa compañía ... :-) –