Muotomääritykset C:ssä

C:n muotomäärittelijällä kerrotaan kääntäjälle tulostettavan tai skannattavan tiedon tyypit syöttö- ja tulostustoiminnoissa. Ne alkavat aina a:lla % symboli ja niitä käytetään muotoillussa merkkijonossa funktioissa, kuten printf(), scanf, sprintf() jne.

C-kieli tarjoaa useita muotomääritteitä, jotka liittyvät eri tietotyyppeihin, kuten %d int:lle, %c charille jne. Tässä artikkelissa käsitellään joitain yleisesti käytettyjä muotomääritteitä ja niiden käyttöä.

Luettelo C:n muotomäärityksistä

Alla oleva taulukko sisältää C:n yleisimmin käytetyt muotomääritykset

Muotomäärittäjä

Kuvaus

%c

Hahmotyypille.

%d

Etumerkilliselle kokonaislukutyypille.

%e tai %E

Kellukkeiden tieteelliseen merkitsemiseen.

%f

Kelluvaan tyyppiin.

%g tai %G

Kelluvaan tyyppiin nykyisellä tarkkuudella.

%i

Etumerkitön kokonaisluku

%ld tai %li

Pitkä

%lf

Kaksinkertainen

%Lf

Pitkä tupla

%lu

Signed int tai unsigned long

%lli tai %lld

Pitkä pitkä

%llu

Allekirjoittamaton pitkä pitkä

%O

Oktaaliesitys

%p

Osoitin

%s

merkkijono

%sisään

Allekirjoittamaton int

%x tai %X

Heksadesimaaliesitys

%n

Ei tulosta mitään

%%

Tulostaa % merkkiä

Esimerkkejä C:n muotomäärityksistä

1. Merkkimuodon määrittäjä – %c C:ssä

%c on muodon määrittäjä hiiltyä tietotyyppi C-kielellä. Sitä voidaan käyttää sekä C-kielellä muotoillulle tulolle että muotoillulle ulostulolle.

Syntaksi:

scanf('  %d  ...', ...); printf('  %d  ...', ...); 

Esimerkki:

C




// C Program to illustrate the %c format specifier.> #include> int> main()> {> > char> c;> > // using %c for character input> > scanf> (> 'Enter some character: %c'> , &c);> > // using %c for character output> > printf> (> 'The entered character: %c'> , &c);> > return> 0;> }>

Syöte:

Enter some character: A 

Lähtö:

The entered character: A 

2. Kokonaislukumuodon määrittäjä (allekirjoitettu) – %d C:ssä

Voimme käyttää etumerkillisen kokonaisluvun muotomäärittelijää %d funktioissa scanf() ja print() tai muissa funktioissa, jotka käyttävät muotoiltua merkkijonoa int tietotyyppi.

Syntaksi:

scanf('%d...', ...); printf('%i...', ...); 

Esimerkki:

C




// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> > int> x;> > // taking integer input> > scanf> (> 'Enter the two integers: %d'> , &x);> > // printing integer output> > printf> (> 'Printed using %%d: %d '> , x);> > printf> (> 'Printed using %%i: %3i '> , x);> > return> 0;> }>

Syöte:

Enter the integer: 45 

Lähtö:

Printed using %d: 45 Printed using %i: 45 

3. Etumerkitön kokonaislukumuodon määrittäjä – %u C:ssä

%u on etumerkittömän kokonaisluvun tietotyypin muotomäärittäjä. Jos määritämme negatiivisen kokonaisluvun %u:lle, se muuntaa kokonaisluvun ensimmäiseksi komplementiksi.

Syntaksi:

printf('  %u  ...', ...); scanf('  %u  ...', ...); 

Esimerkki: Seuraava C-ohjelma näyttää kuinka käyttää %u:ta C:ssä.

C




// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> > unsigned> int> var;> > scanf> (> 'Enter an integer: %u'> , &var);> > printf> (> 'Entered Unsigned Integer: %u'> , var);> > // trying to print negative value using %u> > printf> (> 'Printing -10 using %%u: %u '> , -10);> > return> 0;> }>

Syöte:

Enter an integer: 25 

Lähtö:

Entered unsigned integer: 25 Printing -10 using %u: 4294967286 

4. Liukulukumuodon määrittäjä – %f C:ssä

The %f on liukulukumuodon määrittäjä C-kielellä, jota voidaan käyttää muotoillun merkkijonon sisällä kellua tietotyyppi. Paitsi %f, voimme käyttää %Se on tai %JA muotomäärityksiä tulostaaksesi liukuluku arvo eksponentiaalisessa muodossa.

Syntaksi:

printf('  %f  ...', ...); scanf('  %e  ...', ...); printf('  %E  ...', ...); 

Esimerkki:

C




// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> > float> a = 12.67;> > printf> (> 'Using %%f: %f '> , a);> > printf> (> 'Using %%e: %e '> , a);> > printf> (> 'Using %%E, %E'> , a);> > return> 0;> }>

Lähtö

Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01 

5. Etumerkitön oktaaliluku kokonaisluvulle – %o C:ssä

Voimme käyttää %o-muotomäärittelijää C-ohjelmassa tulostaaksesi tai ottaaksesi syötteen etumerkittömälle oktaaliluvulle.

Syntaksi:

printf('  %o  ...', ...); scanf('  %o  ...', ...); 

Esimerkki:

C




#include> int> main()> {> > int> a = 67;> > printf> (> '%o '> , a);> > return> 0;> }>

Lähtö

103 

6. Elleiton heksadesimaali kokonaisluvulle – %x C:ssä

Muodon %x-määritteitä käytetään heksadesimaalilukujen muotoillussa merkkijonossa. Tässä tapauksessa heksadesimaalilukujen aakkoset ovat pienillä kirjaimilla. Isoilla aakkostollisilla numeroilla käytämme sen sijaan %X.

Syntaksi:

printf('  %x  ...', ...); scanf('  %X  ...', ...); 

Esimerkki:

C




// C Program to demonstrate the use of %x and %X> #include> int> main()> {> > int> a = 15454;> > printf> (> '%x '> , a);> > printf> (> '%X'> , a);> > return> 0;> }>

Lähtö

3c5e 3C5E 

7. Merkkijonomuodon määrittäjä – %s C:ssä

C:n %s:a käytetään merkkijonojen tulostamiseen tai merkkijonojen syöttämiseen.

Syntaksi:

printf('  %s  ...', ...); scanf('  %s  ...', ...); 

Esimerkki:

C




// C program to illustrate the use of %s in C> #include> int> main()> {> > char> a[] => 'Hi Geeks'> ;> > printf> (> '%s '> , a);> > return> 0;> }>

Lähtö

Hi Geeks 

Esimerkki: %s:n toiminta scanf():n kanssa on hieman erilainen kuin sen työskentely komennolla printf(). Ymmärretään tämä seuraavan C-ohjelman avulla.

C




// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> > char> str[50];> > // taking string as input> > scanf> (> 'Enter the String: %s'> , str);> > printf> (> 'Entered String: %s'> , str);> > return> 0;> }>

Syöte

Enter the string: Hi Geeks 

Lähtö

Hi 

Kuten näemme, merkkijonoa tarkistetaan vain, kunnes havaitaan välilyönti. Voimme välttää sen käyttämällä scansetit C:ssä .

8. Osoitemuodon määrittäjä – %p C:ssä

C-kieli tarjoaa myös muotomääritteen osoitteen/osoittimien tulostamista varten. Voimme käyttää %p:tä osoitteiden ja osoittimien tulostamiseen C-kielellä

Syntaksi

printf('  %p  ...', ...); 

Esimerkki:

C




#include> int> main()> {> > int> a = 10;> > printf> (> 'The Memory Address of a: %p '> ,(> void> *)&a);> > return> 0;> }>

Lähtö

The Memory Address of a: 0x7ffe9645b3fc 

Tulo- ja lähtömuotoilu

C-kieli tarjoaa joitain työkaluja, joilla voimme muotoilla syötteen ja lähdön. Ne lisätään yleensä %-merkin ja muotomääritteen symbolin väliin. Jotkut niistä ovat seuraavat:

  1. Miinusmerkki (-) kertoo suuntauksen vasemmalle.
  2. Numero perässä % määrittää tulostettavan kentän vähimmäisleveyden, jos merkit ovat pienempiä kuin leveyden koko, jäljellä oleva tila täytetään välilyönnillä ja jos se on suurempi, tulostetaan sellaisenaan ilman katkaisua.
  3. Piste(. ) -symboli erottaa kentän leveyden tarkasti.

Tarkkuus kertoo kokonaisluvun numeroiden vähimmäismäärän, merkkijonon merkkien enimmäismäärän ja desimaaliosan jälkeisten numeroiden määrän kelluvassa arvossa.

Esimerkki I/O-muotoilusta

C




// C Program to demonstrate the formatting methods.> #include> int> main()> {> > char> str[] => 'geeksforgeeks'> ;> > printf> (> '%20s '> , str);> > printf> (> '%-20s '> , str);> > printf> (> '%20.5s '> , str);> > printf> (> '%-20.5s '> , str);> > return> 0;> }>

Lähtö

 geeksforgeeks geeksforgeeks geeks geeks 

Usein kysytyt kysymykset C-muotomäärityksistä

1. Onko C:llä binäärilukujen muotomääritystä?

Ei, C-kieli ei tarjoa muotomääritteitä binääriluvuille.

2. Mikä on muotoiltu merkkijono?

C:n tulo- ja lähtöfunktiot ottavat argumenttina merkkijonon, joka päättää, kuinka tiedot näytetään näytöllä tai miten tiedot haetaan muistiin. Tätä merkkijonoa kutsutaan muotoilluksi merkkijonoksi.