Mejor respuesta
C tiene muchos especificadores de formato. Uno existe para cada tipo, obviamente, pero más allá de eso, existen otros tales que un programador puede mostrar una variable de cierto tipo en un par de representaciones diferentes. Por ejemplo, \% d imprimirá un número entero. Pero, ese mismo número entero también se puede mostrar en hexadecimal usando \% x. No obstante, una lista de todos los especificadores de formato C originales se puede encontrar aquí: Lista de todos los especificadores de formato en la programación C – Codeforwin
Sin embargo, le recomiendo que adopte el enfoque más moderno para escribir su código C que tiene que ver con declarando variables y mostrándolas apropiadamente. Eso es para usar las definiciones proporcionadas por
Fuente: Cómo C (a partir de 2016)
-
int8\_t
,int16\_t
,int32\_t
,int64\_t
– enteros con signo -
uint8\_t
,uint16\_t
,uint32\_t
,uint64\_t
-enteros sin signo -
float
– flotante estándar de 32 bits punto -
double
– punto flotante estándar de 64 bits -
intptr\_t, uintptr\_t, ptrdiff\_t
La última viñeta contiene tipos que puede usar para la aritmética de punteros.
Ahora, dados esos tipos, la forma correcta de mostrarlos es la siguiente:
-
size\_t
–\%zu
-
ssize\_t
–\%zd
-
ptrdiff\_t
–\%td
- punta sin procesar valor r –
\%p
(imprime hexadecimal en compiladores modernos; envía tu puntero a(void *)
primero) -
int64\_t
–"\%" PRId64
-
uint64\_t
–"\%" PRIu64
Los tipos de 64 bits solo deben imprimirse conPRI[udixXo]64
macros de estilo. ¿Por qué? En algunas plataformas, un valor de 64 bits eslong
y en otras es «salong long
. Estas macros proporcionan la especificación de formato subyacente adecuada en plataformas. De hecho, es imposible especificar una cadena de formato multiplataforma correcta sin estas macros de formato porque los tipos cambian por debajo de usted (y recuerde, la conversión de valores antes de imprimir no es seguro ni lógico). -
intptr\_t
–"\%" PRIdPTR
-
uintptr\_t
–"\%" PRIuPTR
-
intmax\_t
–"\%" PRIdMAX
-
uintmax\_t
–"\%" PRIuMAX
Un ejemplo de impresión de uno de estos tipos:
printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);
Tenga en cuenta que PRIdPTR está fuera de las comillas, pero justo después del signo de porcentaje. Sintácticamente es algo molesto de hecho.
De todos modos, espero que esto responda a la mayor parte de lo que estabas buscando rey para. La información proporcionada sobre el uso de C de una manera más moderna con respecto a los tipos de datos y su visualización a través de especificadores de formato especial provino de un gran documento. Sugiero leer Cómo C (a partir de 2016) .
Además, no olvide que puede buscar especificadores de formato y todo lo relacionado con printf () en las páginas de manual. Si está en un sistema UNIX o UNIX, simplemente abra su shell y
bash$ man printf
También google es su amigo…; -)
Respuesta
Los especificadores de formato comienzan con un porcentaje \% y seguido de un carácter especial para identificar el tipo de datos.
Hay en su mayoría 6 tipos de especificadores de formato que están disponibles en C.
Lista de especificadores de formato en C
Especificador de formato de enteros\% d
El \% d se implementa para representar valores enteros. Esto se usa con la función printf () para imprimir el valor entero almacenado en la variable.
Sintaxis:
printf("\%d",
Especificador de formato flotante\% f
El \% f El especificador de formato se implementa para representar valores fraccionarios. Esto se implementa dentro de la función printf () para imprimir el valor fraccionario o flotante almacenado en la variable. Siempre que necesite imprimir datos fraccionarios o flotantes, debe usar el especificador de formato \% f .
Sintaxis:
printf("\%f",
Especificador de formato de caracteres \% c
El especificador de formato \% c se implementa para representar caracteres. Esto se usa con la función printf () para imprimir el carácter almacenado en una variable. Cuando desee imprimir datos de un carácter, debe incorporar el especificador de formato \% c .
Sintaxis:
printf("\%c",
Especificador de formato de cadena\% s
El \% s El especificador de formato está implementado para representar cadenas. Esto se usa en la función printf () para imprimir una cadena almacenada en la variable de matriz de caracteres. Cuando tenga que imprimir una cadena, debe implementar el especificador de formato \% s .
Sintaxis:
printf("\%s",
Especificador de formato de entero sin signo\% u
El \% u El especificador de formato se implementa para obtener valores de la dirección de una variable que tiene un entero decimal sin signo almacenado en la memoria. Esto se usa dentro de la función printf () para imprimir la variable entera sin signo.
Sintaxis:
printf("\%u",
Especificador de formato Long Int\% ld
El especificador de formato \% ld se implementa para representar valores enteros largos. Esto se implementa con la función printf () para imprimir el valor entero largo almacenado en la variable.
Sintaxis:
printf("\%ld",