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.