Diferencia entre% dy especificador de formato% i en el lenguaje de programación C.

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).


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *