Se você não sabe sobre %eu e %d especificadores de formato, siga as diretrizes deste artigo.
%i Especificador de Formato
Na linguagem de programação C, o %eu é usado para imprimir um inteiro com sinal quando usado com a função printf(). Os inteiros com sinal são aqueles que podem ser positivos ou negativos. Na programação C, ao usar %i, o valor do argumento que está passando deve ser uma expressão ou um tipo inteiro que avalia automaticamente em um tipo de dados inteiro. Você também pode usar o %eu especificador para ler um valor de caractere que esteja dentro do intervalo de um inteiro com sinal.
Especificador de Formato %d
O %d o especificador de formato, por outro lado, é usado para imprimir o inteiro sem sinal na linguagem de programação C. Aqui inteiros sem sinal são inteiros positivos. Na linguagem C, quando você usa %d, o valor do tipo de argumento int .
Diferenças
Ambos %eu e %d especificadores de formato são freqüentemente usados na linguagem de programação C para imprimir números inteiros. Eles podem parecer semelhantes em termos de uso, bem como se comportar da mesma forma ao usar a função printf().
Vamos seguir com um exemplo de código em que ambos os especificadores de formato são usados.
#include
int principal ( ) {
int dígito ;
printf ( 'Insira qualquer dígito: ' ) ;
scanf ( '%eu' , & dígito ) ;
printf ( ' \n O dígito é: %i \n ' , dígito ) ;
printf ( 'O dígito é: %d \n ' , dígito ) ;
retornar 0 ;
}
Neste código, primeiro inicializamos uma variável e pegamos o valor do usuário usando scanf(). Em seguida, mostramos a saída usando %d e %i .
Saída:
Ambos fornecem uma saída semelhante quando usados com o printf() função. Não importa se você digita o valor positivo ou negativo, o resultado sempre será o mesmo.
No entanto, se olharmos para a função scanf, podemos diferenciá-los corretamente. No código acima, se inserirmos um valor decimal como “012” . Se usarmos “%d” em vez de %eu, você obterá a saída 12. A razão é que %d ignora o valor 0 zero da entrada do usuário.
#includeint principal ( ) {
int dígito ;
printf ( 'Insira qualquer dígito: ' ) ;
scanf ( '%d' , & dígito ) ;
printf ( ' \n O dígito é: %i \n ' , dígito ) ;
printf ( 'O dígito é: %d \n ' , dígito ) ;
retornar 0 ;
}
Saída
Se o mesmo valor for inserido usando %eu como na função scanf(), a saída será 10 neste caso. A razão é %eu imprime o valor decimal de 012 (representação octal).
#includeint principal ( ) {
int dígito ;
printf ( 'Insira qualquer dígito: ' ) ;
scanf ( '%eu' , & dígito ) ;
printf ( ' \n O dígito é: %i \n ' , dígito ) ; // saída de sapatos
printf ( 'O dígito é: %d \n ' , dígito ) ; // saída de sapatos
retornar 0 ;
}
Conclusão
O especificador de formato é um padrão que começa inicialmente com o % assinar e geralmente nos diz que tipo de dados é colocado na entrada e quais dados devem ser mostrados. %d e %eu são dois especificadores amplamente usados na programação C. Eles são semelhantes quando usados com a função printf(), mas produzem resultados diferentes quando usados com a função scanf().