Si no coneixeu el %i i %d especificadors de format, seguiu les directrius d'aquest article.
Especificador de format %i
En llenguatge de programació C, el %i s'utilitza per imprimir un nombre enter amb signe quan s'utilitza amb la funció printf(). Els nombres enters amb signe són els que poden ser positius o negatius. A la programació C quan s'utilitza %i, el valor de l'argument que passa ha de ser una expressió o un tipus d'enter que s'avalua automàticament en un tipus de dades enter. També podeu utilitzar el %i especificador per llegir un valor de caràcter que es troba dins de l'interval d'un nombre enter amb signe.
%d especificador de format
El %d D'altra banda, l'especificador de format s'utilitza per imprimir l'enter sense signe en el llenguatge de programació C. Aquí els enters sense signe són enters positius. En llenguatge C, quan utilitzeu %d, llavors el valor del tipus d'arguments int .
Diferències
Tots dos %i i %d Els especificadors de format s'utilitzen freqüentment en el llenguatge de programació C per imprimir nombres enters. Poden semblar similars en termes d'ús i comportar-se igual quan s'utilitza la funció printf().
Seguim amb un codi de mostra on s'utilitzen els dos especificadors de format.
#inclou
int principal ( ) {
int dígit ;
imprimirf ( 'Introduïu qualsevol dígit:' ) ;
escanf ( '%i' , & dígit ) ;
imprimirf ( ' \n El dígit és: %i \n ' , dígit ) ;
imprimirf ( 'El dígit és: %d \n ' , dígit ) ;
tornar 0 ;
}
En aquest codi, primer inicialitzem una variable i prenem valor de l'usuari mitjançant scanf(). A continuació, mostrem la sortida utilitzant %d i %i .
Sortida:
Tots dos proporcionen una sortida similar quan s'utilitzen amb printf() funció. No importa si introduïu el valor positiu o negatiu, el resultat sempre serà el mateix.
Tanmateix, si mirem la funció scanf, podem diferenciar-les correctament. En el codi anterior, si introduïm un valor decimal com “012” . Si fem servir '%d' en lloc de %i, obtindreu la sortida 12. El motiu és que %d ignora el valor 0 zero de l'entrada de l'usuari.
#inclouint principal ( ) {
int dígit ;
imprimirf ( 'Introduïu qualsevol dígit:' ) ;
escanf ( '%d' , & dígit ) ;
imprimirf ( ' \n El dígit és: %i \n ' , dígit ) ;
imprimirf ( 'El dígit és: %d \n ' , dígit ) ;
tornar 0 ;
}
Sortida
Si s'introdueix el mateix valor utilitzant %i com en la funció scanf(), la sortida serà 10 en aquest cas. El motiu és %i imprimeix el valor decimal de 012 (representació octal).
#inclouint principal ( ) {
int dígit ;
imprimirf ( 'Introduïu qualsevol dígit:' ) ;
escanf ( '%i' , & dígit ) ;
imprimirf ( ' \n El dígit és: %i \n ' , dígit ) ; //sortida de sabates
imprimirf ( 'El dígit és: %d \n ' , dígit ) ; //sortida de sabates
tornar 0 ;
}
Conclusió
L'especificador de format és un patró que comença inicialment amb el % signe i normalment ens indica quin tipus de dades es col·loquen a l'entrada i quines dades s'han de mostrar. %d i %i són dos especificadors àmpliament utilitzats en programació en C. Són similars quan s'utilitzen amb la funció printf() però donen resultats diferents quan s'utilitzen amb la funció scanf().