Se puede formatear una cadena, enviarla a la consola o enviarla a un archivo. Este tutorial explica el formato de una cadena, utilizando la función printf (), enviándola al terminal (consola). En C ++, la función printf () se puede usar, mediante la inclusión de la biblioteca.
Contenido del artículo
- Tipos aritméticos
- Naturaleza variádica de printf
- Tipo de cadena
- Whitepace
- Conclusión
Tipos aritméticos
Los tipos aritméticos son enteros y tipos flotantes. Considere el siguiente programa:
#incluirLa salida es:
algún textoEl primer argumento a la función printf () es una cadena literal. El personaje de Newline, "\ n" en la cadena literal, obliga a cualquier cosa que se imprima a su lado para imprimirse en la siguiente línea, incluso si esa cosa está dentro de las quotas dobles. El "\ n" también es un personaje de espacio blanco.
Con la inclusión de "#include" no es realmente necesario.
Entero
Considere las siguientes declaraciones printf ():
printf ("El número es: %i \ n", 52);La salida es:
El número es: 52El %I o %D es un ejemplo de un especificador de formato. %I Dentro del primer argumento de la función printf, que es una cadena literal, significa reemplazarse con el valor entero que es el siguiente argumento de la función printf. %d es sinónimo de %i. El "\ n" siempre desempeñará su papel en el envío de lo que se imprimirá al lado de la siguiente línea en la terminal. Un especificador como %I, escrito junto a \ n, no plantea ningún conflicto de intereses. El segundo argumento a la función printf () puede ser una variable.
Al reemplazarse con el siguiente valor de argumento de la función printf, se dice que el especificador se expande al valor correspondiente. Nota: %I es para un entero, mientras que %F es para un número de flotación.
Ahora, si se inserta un cero entre % y el especificador real, yo, yo.mi., %0i para 1 cero, entonces 52 se emitirán como 52. Si es %02i, para 2 ceros, 52 seguirán siendo generados como 52. Si es %03i, para 3 ceros, 52 se emitirán como 052. Se ha agregado un cero, en la tercera posición, contando desde el extremo derecho del número. Si es %04i, para 4 ceros, 52 se emitirán como, 0052. Se han agregado dos ceros, en la cuarta posición, contando desde el extremo derecho del número.
En este contexto, cero se llama bandera. El siguiente programa ilustra esto:
#incluirLa salida es:
El número es: 52Cero en este contexto se llama bandera. Otra posible bandera es el espacio. El siguiente programa ilustra esto para el espacio:
#incluirLa salida es:
El número es: 52Tenga en cuenta que con la bandera espacial, no se usa ningún carácter en el especificador de formato. Se agrega una bandera frente al número para compensar el número de posiciones solicitadas para el campo de presentación, contando desde la derecha. Si el número de posiciones es menor o igual al número de dígitos, no se agrega ningún indicador.
Ancho de campo
Un campo es el número de caracteres que se pueden mostrar para ese número. Un ancho de campo es el número máximo de caracteres que el programador espera obtener. El número de ancho de campo se inserta justo después del indicador (hacia la derecha) en el especificador de formato. Es lo mismo que el número anterior. Si el número de caracteres que se mostrará es naturalmente mayor que el ancho de campo, la función printf () lo permitirá. El siguiente programa ilustra esto:
#incluirLa salida es:
El número es: 001Flotar
Un número de punto flotante es un número con la parte entera y una parte decimal. Tenga en cuenta que la parte entera no se representa como un entero, internamente. El especificador real para el flotador es "f". El siguiente programa ilustra esto:
#incluirLa salida de la computadora del autor es:
El número es: 2.530000Este número naturalmente tiene 2 decimales. Desafortunadamente, se agregaron 4 lugares decimales de 4 ceros. La verdad es que la computadora del autor redondea el número de decimales a 6. Agregará ceros para compensar 6 decimales si el número natural de decimales es menos. El programador puede decidir el número de decimales. Puede ser menor o igual a 6, o puede ser mayor que 6.
Esta intención necesita otro componente de código, llamado componente de precisión, para el especificador de formato. Consiste en el punto y un número para el número de decimales buscados. El siguiente programa ilustra esto:
#incluirLa salida es:
El número es: 2.530000Tenga en cuenta que ".0 ”no está en ninguno de los especificadores.
Naturaleza variádica de printf
El primer argumento de la función printf () es una cadena literal. Los especificadores de formato se pueden intercalar dentro de la cadena literal. El primer especificador de formato de la izquierda, en la cadena literal, corresponde al segundo argumento de la función printf (). El segundo especificador de formato de la izquierda, en la cadena literal, corresponde al tercer argumento de la función printf (). El tercer especificador de formato corresponde al cuarto argumento de la función printf () y así sucesivamente. El siguiente programa ilustra esto para los tipos de int y flotación:
#incluirLa salida es:
Los números son 027 y 052 y 2.530
Tipo de cadena
El especificador de formato de cadena básica es %s. El siguiente programa muestra su uso:
#incluirLa salida es:
Te amo.El personaje '\ n' es enviar lo que se imprima al lado de la siguiente línea. Todo el primer argumento aquí tiene %s como contenido.
Las diferentes formas posibles de usar números, con el especificador de formato de cadena, son las siguientes:
%NUMSHay 11 personajes en la cadena, "Te amo."El punto es un personaje. Si NUM es inferior a 11, la cadena de salida no se truncará. Si es mayor de 11, los espacios adicionales se acolcharán a la izquierda para hacer que el número total de caracteres en el campo se le da. El siguiente código ilustra esto:
#incluirLa salida es:
Te amo.Aquí, hay un punto frente al número. El punto aquí significa imprimir el número de caracteres del número dado, comenzando desde el primer personaje. Esto significa que si NUM es menor que el número total de caracteres, truncar el equilibrio a la derecha. Si NUM es más, agregue espacios a la derecha de compensar el número dado. El siguiente programa ilustra esto:
#incluirLa salida es:
Te amo te amo.Esta salida necesita más explicación. En la cuerda "Te amo.\ n ", hay 12 caracteres. "\ N" es un personaje. Los primeros 7 personajes son "Amo". La primera función printf () del programa imprime esto: "Me encanta", truncando el resto de la cadena literal, incluyendo "\ n". Desde "\ n" del primer "Te amo.\ n ”ha sido retirado, lo que sea que se imprima a continuación, se imprime en esta línea. La segunda función printf () imprime sus 11 caracteres. El duodécimo personaje, que es "\ n", hace que el cursor vaya a la siguiente línea. Entonces, se deben imprimir 4 espacios más.
%-numsAquí, hay un guión frente al número. El guión significa, imprima el número de caracteres del número dado, comenzando desde el primer personaje. Además, no trunces si NUM es menor que el número total de caracteres. Simplemente agregue más espacios a la derecha para compensar el número dado. El siguiente programa ilustra esto:
#incluirLa salida es:
Te amo.El cursor aparece después de 4 espacios adicionales en la tercera línea.
De %.num1-num2s, %-num1.num2sLa interpretación de estos dos elementos se deja como un ejercicio para el lector.
Whitepace
El "\ n" es un ejemplo de un personaje de espacio blanco. Los personajes de espacios blancos son secuencias de escape. No están impresos. Solo tienen sus efectos individuales. Por ejemplo, "\ n" hace que el cursor vaya a la siguiente línea. En las muestras de código anteriores, este "\ n" se ha empleado dentro del primer argumento de la función printf (), una cadena literal. Todavía se puede emplear como una variable, como muestra el siguiente programa:
#incluirLa salida es:
primera lineaLos siguientes son blancos y sus significados:
\norte: Agregar una nueva línea
\ t: pestaña horizontal
\ V: pestaña vertical
\F: FUERZO DE FORMA
\ 040: espacio único presionando la tecla de barra espacial
\ r: retorno de carro
Conclusión
El formato de la cadena significa poner ciertos caracteres para una cadena, en posiciones particulares y un orden particular. Esto también implica la inserción de caracteres en blanco en ciertas posiciones. C ++ 20 es la última versión de C++. Tiene una biblioteca de formato. Sin embargo, la mayoría de los compiladores de C ++ aún no han implementado esta biblioteca. Nota, la función variádica printf (), incorporada en el lenguaje C ++ desde el lenguaje C, es similar al propósito de la biblioteca de formato. El primer argumento de esta función es una cadena literal. Los especificadores de formato se intercalan dentro de. El resto de los argumentos a la función printf () corresponden a estos especificadores en orden.