Jos et tiedä asiasta %i ja %d muotomäärityksiä, noudata tämän artikkelin ohjeita.
%i Muotomäärittäjä
C-ohjelmointikielessä %i käytetään tulostamaan etumerkillinen kokonaisluku, kun sitä käytetään printf()-funktion kanssa. Etumerkilliset kokonaisluvut voivat olla joko positiivisia tai negatiivisia. C-ohjelmoinnissa %i:tä käytettäessä ohittavan argumentin arvon tulee olla lauseke tai kokonaislukutyyppi, joka arvioi automaattisesti kokonaislukutietotyypissä. Voit myös käyttää %i specifier lukeaksesi merkkiarvon, joka on etumerkityn kokonaisluvun alueella.
%d muotomäärittäjä
The %d Format Specier toisaalta käytetään tulostamaan etumerkitön kokonaisluku C-ohjelmointikielessä. Tässä etumerkittömät kokonaisluvut ovat positiivisia kokonaislukuja. C-kielessä, kun käytät %d, argumenttien arvo tyyppi int .
Erot
Molemmat %i ja %d muotomääritteitä käytetään usein C-ohjelmointikielessä kokonaislukujen tulostamiseen. Ne voivat näyttää samanlaisilta käytön suhteen ja käyttäytyä samalla tavalla printf()-funktiota käytettäessä.
Jatketaan esimerkkikoodilla, jossa käytetään molempia muotomääritteitä.
#include
int pää ( ) {
int numero ;
printf ( 'Syötä mikä tahansa numero:' ) ;
scanf ( '%i' , & numero ) ;
printf ( ' \n Numero on: %i \n ' , numero ) ;
printf ( 'Numero on: %d \n ' , numero ) ;
palata 0 ;
}
Tässä koodissa alustamme ensin muuttujan ja otamme arvon käyttäjältä käyttämällä scanf(:tä). Sitten näytämme ulostulon käyttämällä %d ja %i .
Lähtö:
Molemmat tarjoavat samanlaisen lähdön, kun niitä käytetään printf() toiminto. Ei ole väliä syötätkö positiivisen vai negatiivisen arvon, tulos on aina sama.
Kuitenkin, jos katsomme scanf-funktiota, voimme erottaa ne oikein. Yllä olevassa koodissa, jos syötämme desimaaliarvon, kuten '012' . Jos käytämme '%d' sijasta %i, saat tulosteen 12. Syynä on se %d jättää huomioimatta käyttäjän syöttämän nolla-arvon.
#includeint pää ( ) {
int numero ;
printf ( 'Syötä mikä tahansa numero:' ) ;
scanf ( '%d' , & numero ) ;
printf ( ' \n Numero on: %i \n ' , numero ) ;
printf ( 'Numero on: %d \n ' , numero ) ;
palata 0 ;
}
Lähtö
Jos sama arvo syötetään käyttämällä %i kuten scanf()-funktiossa, tulos on tässä tapauksessa 10. Syy on %i tulostaa desimaaliarvon 012 (oktaaliesitys).
#includeint pää ( ) {
int numero ;
printf ( 'Syötä mikä tahansa numero:' ) ;
scanf ( '%i' , & numero ) ;
printf ( ' \n Numero on: %i \n ' , numero ) ; //kenkien lähtö
printf ( 'Numero on: %d \n ' , numero ) ; //kenkien lähtö
palata 0 ;
}
Johtopäätös
Muotomäärittäjä on kuvio, joka alkaa aluksi % merkki ja se yleensä kertoo, millaista dataa syötetään ja mitä tietoja tulee näyttää. %d ja %i ovat kaksi spesifikaatiota, joita käytetään laajalti C-ohjelmoinnissa. Ne ovat samanlaisia käytettäessä printf()-funktion kanssa, mutta ne tuottavat erilaisia tuloksia käytettäessä scanf()-funktiota.