¿Cuál es el significado de f en printf? [closed]

2 minutos de lectura

avatar de usuario
Sharán

¿Cuál es el significado de “f” en el printf de C?

  • Acabo de empezar a aprender a programar en C… Pido disculpas si esta pregunta es tonta…

    – Sharán

    25 mayo 2012 a las 21:47

  • ¿Qué es vago o ambiguo acerca de la pregunta? ¿Cómo no es razonablemente responsable? Ciertamente hay respuestas razonables. (También parece divertido que K-ballo fuera una de las personas que cerró esto a pesar de tener la respuesta aceptada).

    – jamesdlin

    26 de mayo de 2012 a las 2:36


  • Es una pregunta real, pero que podría buscarse rápidamente en Google (como muchas otras preguntas): google.com/… por lo tanto, está duplicado, así que voto para cerrar, pero por una razón diferente.

    – Ofer Zelig

    16 de diciembre de 2018 a las 5:29

  • La capacidad de Google no debe ser la base para cerrar una pregunta. Google indexa StackOverflow; por lo tanto, todas las preguntas y respuestas sobre SO se pueden buscar implícitamente en Google.

    – jamesdlin

    1 abr 2019 a las 20:52


los f en printf representa formateadose utiliza para imprimir con salida formateada.

  • Gracias… Así que si escribo solo imprimir, funcionará…

    – Sharán

    25 mayo 2012 a las 21:44

  • @Sharan Chandran: No hay print función en la biblioteca estándar de C.

    – K-ballo

    25 mayo 2012 a las 21:46

  • @SharanChandran La versión sin formato se acaba de llamar puts.

    – Chris Arroz

    25 mayo 2012 a las 23:09

Como otros han señalado, el arrastrando f indica salida formateada (o entrada formateada para funciones en el scanf familia).

Sin embargo, agregaré que la distinción es importante porque es importante que las personas que llaman sepan que se espera que la cadena tenga una semántica de especificador de formato. Por ejemplo, no hagas esto:

char* s = get_some_user_input();
printf(s); // WRONG.  Instead use: printf("%s", s) or fputs(stdout, s)

Si s pasa a contener % caracteres, imprimiéndolo directamente con printf puede hacer que acceda a argumentos inexistentes, lo que lleva a un comportamiento indefinido (y esta es la causa de algunas vulnerabilidades de seguridad). Tenga en cuenta esta convención de nomenclatura si alguna vez define su propia printf-como funciones variádicas.

Si no me equivoco, printf significa “Imprimir datos formateados en la salida estándar”.

  • Simplemente “imprimir formato” — stdout simplemente se da por sentado siempre que no especifique lo contrario con fprintf.

    – Jerry Ataúd

    25 mayo 2012 a las 21:52

avatar de usuario
Felipe Schmidt

printf permite formatear, mientras que print no. Además, print no existe en C. Ni siquiera sé qué es printg.

¿Ha sido útil esta solución?