logo

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

array.javasta
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;> }>

>

2-1 multiplekseri
>

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.