Če ne veste za %jaz in %d specifikatorjev formata, upoštevajte smernice tega članka.
%i Specifikator formata
V programskem jeziku C je %jaz se uporablja za izpis predznačenega celega števila, kadar se uporablja s funkcijo printf(). Cela števila s predznakom so tista, ki so lahko pozitivna ali negativna. Pri programiranju C pri uporabi %i mora biti vrednost argumenta, ki se posreduje, izraz ali celoštevilski tip, ki samodejno ovrednoti celoštevilski podatkovni tip. Uporabite lahko tudi %jaz specifikator za branje znakovne vrednosti, ki je v območju predznačenega celega števila.
%d Specifikator oblike
The %d specifikator formata se na drugi strani uporablja za izpis nepredznačenega celega števila v programskem jeziku C. Tu so cela števila brez predznaka pozitivna cela števila. V jeziku C, ko uporabite %d, je vrednost tipa argumentov int .
razlike
Oboje %jaz in %d specifikatorji formata se pogosto uporabljajo v programskem jeziku C za tiskanje celih števil. Lahko so podobni glede uporabe in se obnašajo enako pri uporabi funkcije printf().
Nadaljujmo z vzorčno kodo, kjer sta uporabljena oba specifikatorja formata.
#include
int glavni ( ) {
int številka ;
printf ( 'Prosimo, vnesite katero koli številko: ' ) ;
scanf ( '%jaz' , & številka ) ;
printf ( ' \n Številka je: %i \n ' , številka ) ;
printf ( 'Številka je: %d \n ' , številka ) ;
vrnitev 0 ;
}
V tej kodi najprej inicializiramo spremenljivko in vzamemo vrednost od uporabnika z uporabo scanf(). Nato prikažemo izhod z uporabo %d in %i .
Izhod:
Oba zagotavljata podoben rezultat, če se uporabljata z printf() funkcijo. Ni pomembno, ali vnesete pozitivno ali negativno vrednost, rezultat bo vedno enak.
Če pa pogledamo funkcijo scanf, jih lahko pravilno ločimo. Če v zgornji kodi vnesemo decimalno vrednost, kot je “012” . Če uporabljamo »%d« namesto %jaz, dobili boste rezultat 12. Razlog je ta %d ignorira ničelno vrednost 0 iz uporabniškega vnosa.
#includeint glavni ( ) {
int številka ;
printf ( 'Prosimo, vnesite katero koli številko: ' ) ;
scanf ( '%d' , & številka ) ;
printf ( ' \n Številka je: %i \n ' , številka ) ;
printf ( 'Številka je: %d \n ' , številka ) ;
vrnitev 0 ;
}
Izhod
Če je ista vrednost vnesena z uporabo %jaz tako kot pri funkciji scanf(), bo rezultat v tem primeru 10. Razlog je %jaz natisne decimalno vrednost 012 (oktalna predstavitev).
#includeint glavni ( ) {
int številka ;
printf ( 'Prosimo, vnesite katero koli številko: ' ) ;
scanf ( '%jaz' , & številka ) ;
printf ( ' \n Številka je: %i \n ' , številka ) ; //izhod čevljev
printf ( 'Številka je: %d \n ' , številka ) ; //izhod čevljev
vrnitev 0 ;
}
Zaključek
Specifikator formata je vzorec, ki se na začetku začne z % in nam običajno pove, kakšni podatki so vneseni v vnos in kateri podatki naj bodo prikazani. %d in %jaz sta dva specifikatorja, ki se pogosto uporabljata v programiranju C. Podobni so pri uporabi s funkcijo printf(), vendar dajejo drugačne rezultate, če se uporabljajo s funkcijo scanf().