Cómo dar formato a printf () en la programación c

La función de salida más popular de programación C tiene que ser printf (). Eso&rsquo-s todo el mundo&rsquo-s favorito. Eso&rsquo-s una de las primeras funciones que se aprenden en C. Y como uno de los más complejos, se&rsquo-s una de las funciones que nadie sabe nunca totalmente.

El poder en printf () reside en su cadena de formato. Ese texto puede ser embalado con texto sin formato, las secuencias de escape, y los caracteres de conversión, que son los pequeños goobers ciento que insertan valores en la salida de texto. Eso&rsquo-s los caracteres de conversión que dan printf () su poder real, y que&rsquo-re también una de las funciones&rsquo-s menos entiende aspectos.

Como formato de coma flotante

Se puede utilizar más que el carácter básico de conversión% f para dar formato a los valores de coma flotante. De hecho, aquí&función rsquo-s un gran formato que puede utilizar en la función printf ()&rsquo-s de formato al texto:

Video: C en español - 03: printf y descriptores de formato

%w.pagF

los w establece el ancho máximo de todo el número, incluido el lugar decimal. los pag establece precisión. Por ejemplo:

printf ("% 9.2f", 12.45) -

Esta declaración da salida a cuatro espacios y luego 12.45. Esas cuatro espacios más 12,45 (cinco caracteres en total) son iguales a la 9 en la anchura. Sólo dos valores se muestran a la derecha del punto decimal porque 0.2 se utiliza en el carácter de conversión% f.

Eso&rsquo-s posible especificar el valor de precisión sin establecer una anchura, pero debe tener el prefijo por el punto decimal, como en% .2f (punto y dos por ciento F). ver El pagrintf () El formato de punto flotante gama.

EL Printf () FORMATEO DE PUNTO FLOTANTE GAMUT

Video: C #2| Imprimir en pantalla usando printf

#include int principal) {float sample1 (= 34.5-flotador sample2 = 12.3456789-printf ("%% 9.1f =% 9.1fn", Sample1) -printf ("%% 8.1f =% 8.1fn", Sample1) -printf ("%% 7.1f =% 7.1fn", Sample1) -printf ("%% 6.1f =% 6.1fn", Sample1) -printf ("%% 5.1f =% 5.1fn", Sample1) -printf ("%% 4.1f =% 4.1fn", Sample1) -printf ("%% 3.1f =% 3.1fn", Sample1) -printf ("%% 2.1f =% 2.1fn", Sample1) -printf ("%% 1.1f =% 1.1fn", Sample1) -printf ("%% 9.1f =% 9.1fn", Sample2) -printf ("%% 9.2f =% 9.2fn", Sample2) -printf ("%% 9.3f =% 9.3fn", Sample2) -printf ("%% 9.4f =% 9.4fn", Sample2) -printf ("%% 9.5f =% 9.5fn", Sample2) -printf ("%% 9.6f =% 9.6fn", Sample2) -printf ("%% 9.7f =% 9.7fn", Sample2) -printf ("%% 9.6f =% 9.6fn", Sample2) -printf ("%% 9.7f =% 9.7fn", Sample2) -printf ("%% 9.8f =% 9.8fn", Sample2) -Retorno (0) -}

Ejercicio 1: Escriba el código fuente del pagrintf () El formato de punto flotante Gama en su editor. Se parece a un montón de trabajo, pero se puede crear el código rápidamente mediante el uso de un montón de copiar y pegar.

La salida de Ejercicio 1 ayuda a ilustrar las porciones de anchura y de precisión del carácter de conversión% f&rsquo-s de salida:

% 9.1f = 34,5% 8.1f = 34,5% 7.1f = 34,5% 6.1f = 34,5% 5.1f = 34,5% 4.1f = 34,5% 3.1f = 34,5% 2.1f = 34,5% 1.1f = 34,5% 9.1f = 12,3 % 9.2f = 12,35% 9.3f = 12,346% 9.4f = 12,3457% 9.5f = 12,34568% 9.6f = 12,345679% 9.7f = 12.3456793% 9.8f = 12,34567928

A partir de esta salida, se puede ver cómo el valor de anchura “almohadillas” los números de la izquierda. A medida que el valor de anchura disminuye, también lo hace el relleno. Sin embargo, cuando la anchura especificada es más ancha que el valor original, se muestra sin sentido, como se muestra por las dos últimas líneas de salida. Ese&rsquo-s porque la anchura es más allá del límite de precisión simple.

Ajuste de la anchura de salida

los wopción utilizada para ancho de salida está disponible para todos los caracteres de conversión, no sólo% f. los anchura es la mínima cantidad de espacio que se proporciona para la salida. Cuando la salida es menor que la anchura, se&rsquo s-derecha; justificada. Cuando la salida es mayor que la anchura, la anchura se ignora. Ver Messing con el ancho.

Messing con el ancho

#include int main () {printf ("%% 15s =% 15sn","Hola") -printf ("%% 14s =% 14sn","Hola") -printf ("%% 13s =% 13sn","Hola") -printf ("%% 12s =% 12sn","Hola") -printf ("%% 11s =% 11sn","Hola") -printf ("%% 10s =% 10sn","Hola") -printf (" %% 9s =% 9SN","Hola") -printf (" %% 8s =% 8sn","Hola") -printf (" %% 7s =% 7SN","Hola") -printf (" %% 6s =% 6SN","Hola") -printf (" %% 5s =% 5SN","Hola") -printf (" %% 4s =% 4SN","Hola") -Retorno (0) -}

ejercicio 2: Escriba el código fuente de jugar con el ancho en un nuevo proyecto. Generar y ejecutar para examinar la salida, que se ve así:

% 15s = Hola% 14s = Hola% 13s = Hola% 12s = Hola% 11s = Hola% 10s = Hola% 9s = Hola% 8s = Hola% 7s = Hola% 6s = Hola% 5s = Hola% 4s = hola

Al igual que con la opción de anchura para los números de punto flotante (véase el ejercicio anterior), el espacio se rellena a la izquierda cuando la anchura es mayor que la cadena que se muestra. Pero cuando la anchura es menor que la cadena&rsquo-s de longitud, todavía se muestra la cadena completa.

Cuando se especifica el valor de anchura para un número entero, que puede ser utilizado a derecha; alinear la salida. Por ejemplo:

printf ("% 4d",valor)-

Esta declaración asegura que la salida para el valor es correcto; justificada y al menos cuatro caracteres anchos. Si el valor es menos de cuatro caracteres de ancho,&rsquo-s acolchada con espacios a la izquierda. Es decir, a menos que usted se pega un 0 en ese país:

Video: Datos de entrada y salida C++ (printf y scanf)

printf ("% 04d",valor)-

En ese caso, la función printf () teclas de funciones de la anchura con ceros para mantener todo cuatro caracteres anchos.

¿Cómo alinear de salida

El valor de anchura en el carácter de conversión alinea salida a la derecha, conocida como justificar a la derecha. Pero no todo está bien. A veces, desea justificación a la izquierda. Para forzar el relleno hacia el lado derecho de la salida, inserte un signo menos antes de que el valor de anchura en carácter de conversión% s. Por ejemplo:

printf ("% -15s",cuerda)-

Esta declaración muestra el texto de la cadena gama justificado a la izquierda. Si la cadena es más corta que 15 caracteres, los espacios se añaden a la derecha.

El código fuente en reunirse en el Medio muestra dos cadenas. El primero de ellos se deja; justificado dentro de una gama de anchuras variables. El ancho se hace más pequeño con cada declaración printf progresiva ().

Encontrándose en el medio

#include int main () {printf ("-9s% hombres","reunirse") -printf ("-8s% hombres","reunirse") -printf ("-7s% hombres","reunirse") -printf ("-6s% hombres","reunirse") -printf ("5S% hombres","reunirse") -printf ("-4s% hombres","reunirse") -Retorno (0) -}

ejercicio 3: Copiar el formato de código de reuniones en el centro en su editor. Crear el programa y ejecutarlo para ver la salida de la alineación demostrado.

ejercicio 4: Escribir un programa que muestra los nombres y apellidos de los primeros cuatro presidentes de los Estados Unidos. Almacenar los nombres en una matriz de caracteres multidimensional. Los nombres tienen que alinearse para que la salida se ve así:

George WashingtonJohn AdamsThomas JeffersonJames Monroe
Artículos Relacionados