función de lenguaje C printf detallada

[Del talón]

la función del lenguaje C ha formateado printf salida, snprintf sprintf y similares, una función ligeramente diferente, utilizando métodos similares, que se describe en el presente documento como un ejemplo para introducir la función printf para su uso.

Para la función printf, creo que no estamos familiarizados. La razón por la llamada función de salida formateada, la fama función es la siguiente:

int printf(const char *format, ...);

Vemos la función sentencia printf será un poco ignorante, está escrito con los parámetros de lo que hemos aprendido antes de la función no es lo mismo, la función printf es una "función de parámetro variable" (es decir, el número de argumentos es variable), conocimiento de los parámetros variables de la función de tarde, y ahora acaba de saber cómo utilizar en la línea.

El número y tipo de parámetros son función printf variable, el formato de salida de cada parámetro tiene un correspondiente especificador de formato correspondiente a la misma, a partir de la descripción de formato de cadena izquierda de los primeros símbolos corresponden a un primer formato de parámetros de salida, el segundo especificador de formato correspondiente al segundo parámetro de salida, la tercera especificador de formato correspondiente al tercer parámetro de salida, y así sucesivamente.

En el que el especificador de formato sigue la forma (entre corchetes [] en la entrada es opcional):

   %[flags][width][.prec] type

1, tipo de carácter (tipo)

Se utiliza para indicar el tipo de datos de salida, lo que sigue es un resumen del tipo de uso común, que normalmente no se utiliza no introducido.

% Hd,% d,% ld decimal, símbolo de salida número entero tiene la forma de, int, tipo largo corto.

% Hu,% u, decimal% lu, salida de entero sin signo en forma de resumen, int, tipo largo

% Caracteres de salida C.

% De salida Lf de una manera convencional doble (float obsoleto, largo Doube inútil).

% E doble salida en notación científica.

% S cadena de salida.

2, el ancho (ancho)

Se utiliza para controlar el ancho de los contenidos de salida.

   printf("=%12s=\n","abc");     // 输出=         abc=
   printf("=%12d=\n",123);       // 输出=         123=
   printf("=%12lf=\n",123.5);    // 输出=  123.500000=

3, las marcas de alineación (las banderas)

banderas para controlar la alineación de los contenidos de salida.

No llene o + : la alineación de salida derecho contenido, que es el modo por defecto, la sección anterior es un ejemplo de un alineado a la derecha.

- : contenido de justificación a la izquierda.

   printf("=%-12s=\n","abc");    // 输出=abc         =
   printf("=%-12d=\n",123);     // 输出=123         =
   printf("=%-12f=\n",123.5);    // 输出=123.500000  =

Si la salida de contenido es número entero o de coma flotante, y alineados para justificar a la derecha, relleno de ceros se puede añadir, por ejemplo:

   printf("=%012s=\n","abc");  // 输出=         abc=
   printf("=%012d=\n",123);   // 输出=000000000123=
   printf("=%012f=\n",123.5);  // 输出=00123.500000= 

De los resultados anteriores, la primera línea de código, no el contenido del número entero de salida o de punto flotante, cadena, no puede llenar la parte delantera 0.

Justificado a la izquierda cuando se puede llenar 0 en la parte trasera del número entero o punto flotante? Flotar hasta un máximo de seis, número entero no es así, ¿por qué? Puede depositar hasta 0 después?

4, la precisión (prec)

Si el contenido de la salida se punto, que se utiliza para controlar la precisión de la salida de los contenidos flotando, es decir el número de bits reservados después del punto decimal, el número es de nuevo redondeado.

   printf("=%12.2lf=\n",123.5);   // 输出=      123.50=
   printf("=%.2lf=\n",123.5);     // 输出=123.50=
   printf("=%12.2e=\n",123500000000.0);  // 输出=    1.24e+11=
   printf("=%.2e=\n",123500000000.0);    // 输出=1.24e+11=

5, la salida con formato a una cadena

int printf(const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);

printf es salida a la pantalla, la salida sprintf formateado para guardar el contenido de la cadena str, similar a la snprintf strncpy el n-n, lo que significa que sólo el resultado de la salida antes de la obtención de n-1 caracteres, en lugar de n caracteres .

C funciones de biblioteca idioma siempre para convertir la cadena a número entero y funciones de biblioteca de datos de punto flotante, pero sin el número entero y datos de punto flotante se convierte en una cadena, en lugar de utilizar sprintf y función snprintf en una salida de cadena con formato.

Ejemplo (book98.c)

/*
 * 程序名:book98.c,此程序演示格式化输出sprintf和snprintf函数。
 * 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>

int main()
{
   char str[301];

  // 格式化输出到str中
  sprintf(str,"%d,%c,%f,%s",10,'A',25.97,"一共输入了三个数。");
  printf("%s\n",str);

  // 格式化输出到str中,只截取前7个字符
  snprintf(str,8,"%d,%c,%f,%s",10,'A',25.97,"一共输入了三个数。");
  printf("%s\n",str);
}

Los resultados operativos Aquí Insertar imagen Descripción

La segunda línea que va de salida sólo seis caracteres, nota, rendimiento función snprintf bajo plataformas Unix y Windows es un poco diferente, en la plataforma Windows, la salida será segunda línea 7 caracteres.

6. Derechos de autor

C Tecnología de Red de Lenguaje artículo original, que se reproduce por favor indique el enlace de la fuente con el artículo, el autor y original.

Fuente: C Tecnología de red Idioma ( www.freecplus.net ) Autor: agrícola Código de Ética si este artículo útil para usted, por favor ayuda elogio o desvío de mi artículo en tu blog, gracias! ! !

Supongo que te gusta

Origin www.cnblogs.com/wucongzhou/p/12668766.html
Recomendado
Clasificación