formato especificador / caracteres de conversión
En lenguaje de programación C, hay algún conjunto de caracteres precedidos por % de caracteres , que definen el tipo de valores de entrada y de salida, conocido como especificadores de formato de caracteres y / o conversión .
Por ejemplo – si usted desea leer e imprimir carácter individual utilizando scanf y printf función, % c se utiliza.
considere las siguientes afirmaciones
char gender;
scanf("%c",&gender);
printf("Gender is: %cn",gender);
Aquí % c está utilizando en ambos estados scanf y printf , while lectura de los valores del usuario, % c en scanf definen que solo personaje va a ser leído, de manera similar % c de printf define que sólo carácter individual será impreso.
diferencia entre% dy especificador de formato% i?
% d y % i ambos se utilizan para leer e imprimir número entero valores, todavía tienen diferencias.
% d – Especifica signed decimal número entero
% i – Especifica número entero
% d y% i como especificadores de salida
Ambos especificadores son los mismos si están utilizando como especificadores de salida, printf función imprimirá el mismo valor, ya sea % d o % i se utiliza.
Consideremos el siguiente ejemplo
#include <stdio.h>
int main()
{
int a=6734;
printf("value of "a" using %%d is= %dn",a);
printf("value of "a" using %%i is= %in",a);
return 0;
}
value of "a" using %d is= 6734
value of "a" using %i is= 6734
% d y% i como especificadores de entrada
Ambos especificadores son diferentes si están utilizando como especificadores de entrada, scanf función actuará diferente en función de % d y % i .
% d como entrada especificador
% d toma número entero valor como signed decimal número entero es decir que toma valores negativos junto con valores positivos pero los valores debe ser decimal.
% i como entrada especificador
% i toma número entero valor como valor entero con decimal, hexadecimal o tipo octal.
para dar valor en formato hexadecimal – valor debe ser proporcionado por precedente “0x” y el valor en formato octal – valor debe ser proporcionado por precedente “0” .
Consideremos el siguiente ejemplo
#include <stdio.h>
int main()
{
int a=0;
int b=0;
printf("Enter value of a: ");
scanf("%d",&a);
printf("Enter value of b: ");
scanf("%i",&b);
printf("a=%d, b=%dn",a,b);
return 0;
}
Enter value of a: 2550
Enter value of b: 0x2550
a=2550, b=9552
En este ejemplo el valor introducido de un es 2550 (a través de % d especificador de formato) y el valor introducido de b es 0x2550 (a través de % i especificador de formato). Desde 0x2550 se da a b que está escaneando valor a través de % i por lo que sería 9552 (que es el valor decimal de 0x2550).