logo

printf i C

I C-språket används funktionen printf() för att skriva ut formaterad utdata till standardutdata stdout (vilket vanligtvis är konsolskärmen). Printf-funktionen är en del av C-standardbiblioteket < stdio.h> och det kan tillåta formatering av utdata på många sätt.

Syntax för printf

 printf  ( ' formatted_string ',   arguments_list);>

Parametrar

    formatted_string: Det är en sträng som specificerar data som ska skrivas ut. Den kan också innehålla en formatspecifikation för att skriva ut värdet på valfri variabel som ett tecken och ett heltal. arguments_list: Dessa är variabelnamnen som motsvarar formatspecifikationen.

Returvärde

  • printf() returnerar antalet tecken som skrivs ut efter framgångsrik exekvering.
  • Om ett fel uppstår returneras ett negativt värde.

Exempel på printf

I det här exemplet skriver vi ut strängen Hello Geek! i utgången med funktionen printf(). I funktionen printf() skrivs det vi kommer att skriva inuti de dubbla citattecken ( ) i utdata.



C






// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }>



>

>

Produktion

Hello Geek!>

Formatering i C printf

I C kan ett värde vara en teckentyp, heltalstyp, flyttyp och så vidare. För att visa och formatera dessa värden med printf, har vi formatspecifikationer som används i den formaterade strängen. Dessa formatspecifikationer börjar med procentsymbolen '%'.

Syntax för Format Specifier

%[flags][width][.precision][length]specifier>

1. Specifierare

Det är tecknet som anger typen av data. Några vanliga specifikationer är:

    %d : för utskrift av heltal %f : för utskrift av flyttal %c: för utskrift av tecken %s: för utskrift av strängar %p: för utskrift av minnesadresser %x : för utskrift av hexadecimala värden

Exempel

printf(' %c ', char_variable );>

2. Bredd

Det är underspecifikationen som anger det minsta antalet tecken som kommer att skrivas ut.

Om antalet tecken är mindre än den angivna bredden kommer det vita utrymmet att användas för att fylla de återstående tecknens platser. Men om antalet tecken är större än den angivna bredden, kommer alla tecken fortfarande att skrivas ut utan att några klipps bort.

Exempel

printf('% 25 s', some_string );>

eller

printf('% * s', 25 , some_string );>

3. Precision

Precisionsunderspecifikationens betydelse skiljer sig för olika formatspecifikationer som den används med.

parallell bearbetning
    För integraldata(d, i, u, o, x, X): Anger det minsta antalet siffror som ska skrivas ut. Men till skillnad från underspecifikationen för bredd, i stället för blanksteg, lägger denna underspecifikation till inledande nollor till talet. Om numret har fler siffror än precisionen skrivs numret ut som det är. För flytande eller dubbla data(f, e, a, A): Anger antalet siffror som ska skrivas ut efter decimalkomma. För sträng (s): Anger längden på strängen som ska skrivas ut.

Exempel

printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ;>

eller

printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string );>

4. Längd

Anger längden på datatypen i minnet. Det används i korrespondens med C




// C program to print a variable> #include> int> main()> {> >int> num1 = 99;> >int> num2 = 1;> >printf>(>'The sum of %d and %d is %d '>, num1, num2,> >num1 + num2);> >return> 0;> }>

>

>

Produktion

The sum of 99 and 1 is 100>

Exempel 2: printf med specificerad bredd

I det här exemplet kommer vi att ange bredden på utdata som kommer att skrivas ut av printf()-funktionen.

C




// C program to illustrate the use of printf with width> // specifier> #include> int> main()> {> >// number to be printed> >int> num = 123456;> >// printing the num with 10 width and getting the> >// printed characters in char_printed> >printf>(>'Printing num with width 10: '>);> >int> chars_printed =>printf>(>'%10d'>, num);> >printf>(>' Number of characters printed: %d'>,> >chars_printed);> >// specifying with using other method> >printf>(>' Printing num with width 3: '>);> >chars_printed =>printf>(>'%*d'>, 3, num);> >printf>(>' Number of characters printed: %d'>,> >chars_printed);> >return> 0;> }>

>

>

Produktion

Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6>

Som vi kan se, även om vi definierar bredden som är mindre än de nuvarande tecknen, skrivs alla tecken fortfarande ut. Vi har också sett de två sätten på vilka vi kan definiera bredden.

Exempel 3: printf med Precision Sub-Specifier

I det här exemplet kommer vi att demonstrera precisionsunderspecifikationen i printf()-funktionen

C




// C program to illustrate the use of precision> // sub-specifier> #include> int> main()> {> >int> num = 2451;> >float> dec = 12.45126;> >char>* str =>'techcodeview.com'>;> >// precision for integral data> >printf>(>'For integers: %.10d '>, num);> >// precision for numbers with decimal points> >printf>(>'For floats: %.2f '>, dec);> >// for strings> >printf>(>'For strings: %.5s'>, str);> >return> 0;> }>

>

>

Produktion

For integers: 0000002451 For floats: 12.45 For strings: Geeks>

Exempel 4: printf med Length Sub-Specifier

C




// C program to illustrate the length modifier> #include> int> main()> {> >long> var = 3000000000;> >// printing var using %d> >printf>(>'Using %%d: %d'>, var);> >// printing var using %ld> >printf>(>' Using %%ld: %ld'>, var);> >return> 0;> }>

>

>

Produktion

Using %d: -1294967296 Using %ld: 3000000000>

Relaterade artiklar: