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:
- Miinusmerkki (-) kertoo suuntauksen vasemmalle.
- 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.
- 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.