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:
- 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.