Saltar al contenido

¿Cuál es la diferencia entre printf() y puts() en C?

Este grupo de redactores ha estado por horas investigando para darle respuesta a tu interrogante, te regalamos la respuesta así que deseamos serte de mucha apoyo.

Solución:

puts es mas simple que printf pero tenga en cuenta que el primero agrega automáticamente una nueva línea. Si eso no es lo que quieres, puedes fputs tu string para stdout o uso printf.

(Esto se señala en un comentario de Zan Lynx, pero creo que merece una respuesta, dado que la respuesta aceptada no lo menciona).

La diferencia esencial entre puts(mystr); y printf(mystr); es que en este último el argumento se interpreta como una formato string. El resultado será a menudo el mismo (excepto por la nueva línea añadida) si el string no contiene ningún carácter de control (%) pero si no puede confiar en eso (si mystr es una variable en lugar de un literal) debe no úsalo

Entonces, generalmente es peligroso -y conceptualmente incorrecto– para pasar una dinámica string como único argumento de printf:

  char * myMessage;
  // ... myMessage gets assigned at runtime, unpredictable content
  printf(myMessage);  // <--- WRONG! (what if myMessage contains a '%' char?) 
  puts(myMessage);    // ok
  printf("%sn",myMessage); // ok, equivalent to the previous, perhaps less efficient

Lo mismo se aplica a fputs contra fprintf (pero fputs no agrega la nueva línea).

Además de formatear, puts devuelve un entero no negativo si tiene éxito o EOF si no tiene éxito; tiempo printf devuelve el número de caracteres impresos (sin incluir el final null).

valoraciones y reseñas

Acuérdate de que puedes permitirte añadir un criterio objetivo si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *