Formato specifikacija C yra naudojama norint informuoti kompiliatorių apie duomenų tipą, kuris turi būti spausdinamas arba nuskaitomas atliekant įvesties ir išvesties operacijas. Jie visada prasideda a % simbolis ir naudojami suformatuotoje eilutėje tokiose funkcijose kaip printf (), scanf, sprintf () ir kt.
C kalba pateikia daugybę formatų specifikacijų, susietų su skirtingais duomenų tipais, pvz., %d – int, %c – char ir tt Šiame straipsnyje aptarsime kai kuriuos dažniausiai naudojamus formato parametrus ir kaip juos naudoti.
C formato specifikacijų sąrašas
Žemiau esančioje lentelėje pateikiami dažniausiai naudojami C formato specifikacijos
Formato specifikatorius | apibūdinimas |
---|---|
%c | Dėl simbolio tipo. |
%d | Ženklinio sveikojo skaičiaus tipui. |
%e arba %E | Moksliniam plūdžių žymėjimui. |
%f | Plūdės tipui. |
%g arba %G | Plūdinio tipo su dabartiniu tikslumu. |
%i | Nepažymėtas sveikasis skaičius |
%ld arba %li | Ilgai |
%lf | Dvigubas |
%Lf | Ilgas dvivietis |
%lu | Unsigned int arba unsigned long |
%lli arba %lld | Ilgas ilgas |
%llu | Nepasirašytas ilgas ilgas |
%O | Aštuntainis vaizdas |
%p | Rodyklė |
%s | Styga |
%in | Nepasirašytas tarpt |
%x arba %X | Šešioliktainis vaizdavimas |
%n | Nieko nespausdina |
%% | Spausdina % simbolis |
C formato specifikatorių pavyzdžiai
1. Simbolių formato specifikatorius – %c C
%c yra formato specifikacija char duomenų tipas C kalba. Jis gali būti naudojamas tiek suformatuotai įvestiei, tiek suformatuotai išvestiei C kalba.
Sintaksė:
scanf(' %d ...', ...); printf(' %d ...', ...);>
Pavyzdys:
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;> }> |
>
>
Įvestis:
Enter some character: A>
Išvestis:
The entered character: A>
2. Sveikojo skaičiaus formato specifikatorius (pasirašytas) – %d C
Galime naudoti sveikųjų ženklų formato specifikatorių %d funkcijose scanf() ir print() arba kitose funkcijose, kurios naudoja formatuotą eilutę įvesti ir išvesti tarpt duomenų tipas.
Sintaksė:
scanf('%d...', ...); printf('%i...', ...);>
Pavyzdys:
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;> }> |
>
>
Įvestis:
Enter the integer: 45>
Išvestis:
Printed using %d: 45 Printed using %i: 45>
3. Nepaženklinto sveikojo skaičiaus formato specifikatorius – %u C
%u yra nepasirašyto sveikojo skaičiaus duomenų tipo formato specifikacija. Jei nurodysime neigiamą sveikojo skaičiaus reikšmę %u, jis konvertuoja sveikąjį skaičių į pirmąjį papildymą.
Sintaksė:
printf(' %u ...', ...); scanf(' %u ...', ...);>
Pavyzdys: Šioje C programoje parodyta, kaip naudoti %u C.
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;> }> |
>
>
Įvestis:
Enter an integer: 25>
Išvestis:
Entered unsigned integer: 25 Printing -10 using %u: 4294967286>
4. Slankaus kablelio formato specifikacija – %f C
The %f yra slankiojo kablelio formato specifikacija C kalba, kuri gali būti naudojama suformatuotoje eilutėje įvesti ir išvesti plūdė duomenų tipas. Be %f, galime naudoti %Tai yra arba %IR formato specifikacijos, kad spausdintumėte slankiojo kablelio reikšmė eksponentine forma.
Sintaksė:
printf(' %f ...', ...); scanf(' %e ...', ...); printf(' %E ...', ...);>
Pavyzdys:
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;> }> |
>
>Išvestis
spausdinti iš java
Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>
5. Beženklis aštuntasis sveikojo skaičiaus skaičius – %o C
Galime naudoti %o formato specifikaciją programoje C, kad išspausdintume arba gautume įvestį beženklį aštuntąjį sveikąjį skaičių.
Sintaksė:
printf(' %o ...', ...); scanf(' %o ...', ...);>
Pavyzdys:
C
#include> int> main()> {> > int> a = 67;> > printf> (> '%o
'> , a);> > return> 0;> }> |
>
>Išvestis
103>
6. Beženklis šešioliktainis sveikasis skaičius – %x C
%x formato specifikacija naudojama šešioliktainių sveikųjų skaičių suformatuotoje eilutėje. Šiuo atveju šešioliktainių skaičių abėcėlės bus rašomos mažosiomis raidėmis. Didiesiems abėcėlės skaitmenims naudojame %X.
Sintaksė:
printf(' %x ...', ...); scanf(' %X ...', ...);>
Pavyzdys:
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;> }> |
>
>Išvestis
3c5e 3C5E>
7. Eilučių formato specifikatorius – %s C
%s C yra naudojamas spausdinti eilutes arba paimti eilutes kaip įvestį.
Sintaksė:
printf(' %s ...', ...); scanf(' %s ...', ...);>
Pavyzdys:
C
// C program to illustrate the use of %s in C> #include> int> main()> {> > char> a[] => 'Hi Geeks'> ;> > printf> (> '%s
'> , a);> > return> 0;> }> |
>
>Išvestis
Hi Geeks>
Pavyzdys: %s veikimas su scanf() šiek tiek skiriasi nuo darbo su printf(). Supraskime tai naudodami šią C programą.
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;> }> |
>
>
Įvestis
Enter the string: Hi Geeks>
Išvestis
Hi>
Kaip matome, eilutė nuskaitoma tik tol, kol aptinkamas tarpas. Mes galime to išvengti naudodami nuskaityti rinkiniai C .
8. Adreso formato specifikatorius – %p C
C kalba taip pat suteikia formato specifikaciją adreso / rodyklių spausdinimui. Galime naudoti %p norėdami spausdinti adresus ir nuorodas C
Sintaksė
printf(' %p ...', ...);>
Pavyzdys:
C
#include> int> main()> {> > int> a = 10;> > printf> (> 'The Memory Address of a: %p
'> ,(> void> *)&a);> > return> 0;> }> |
>
>Išvestis
The Memory Address of a: 0x7ffe9645b3fc>
Įvesties ir išvesties formatavimas
C kalba suteikia keletą įrankių, kuriais galime suformatuoti įvestį ir išvestį. Paprastai jie įterpiami tarp % ženklo ir formato specifikatoriaus simbolio. Kai kurie iš jų yra tokie:
- Minuso (-) ženklas rodo išlygiavimą į kairę.
- Skaičius po % nurodo minimalų lauko plotį, kuris turi būti spausdinamas, jei simboliai yra mažesni už pločio dydį, likusi vieta užpildoma tarpu, o jei ji didesnė, spausdinama tokia, kokia yra be sutrumpinimo.
- Taško (. ) simbolis tiksliai atskiria lauko plotį.
Tikslumas nurodo mažiausią sveikojo skaičiaus skaitmenų skaičių, maksimalų simbolių skaičių eilutėje ir skaitmenų skaičių po dešimtainės dalies slankiojoje reikšmėje.
I/O formatavimo pavyzdys
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;> }> |
>
>Išvestis
geeksforgeeks geeksforgeeks geeks geeks>
DUK apie C formato specifikatorius
1. Ar C turi dvejetainių skaičių formato specifikaciją?
Ne, C kalba nepateikia dvejetainių skaičių formato specifikatoriaus.
2. Kas yra suformatuota eilutė?
C įvesties ir išvesties funkcijos naudoja eilutę kaip argumentą, kuris nusprendžia, kaip duomenys bus rodomi ekrane arba kaip duomenys nuskaitomi į atmintį. Ši eilutė vadinama suformatuota eilute.