Formato specifikacijos C

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

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:

  1. Minuso (-) ženklas rodo išlygiavimą į kairę.
  2. 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.
  3. 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.