I C-sprog bruges printf()-funktionen til at udskrive formateret output til standardoutput stdout (som generelt er konsolskærmen). Printf-funktionen er en del af C-standardbiblioteket < stdio.h> og det kan tillade formatering af outputtet på adskillige måder.
Syntaks af printf
printf ( ' formatted_string ', arguments_list);>
Parametre
- formatted_string: Det er en streng, der specificerer de data, der skal udskrives. Den kan også indeholde en formatspecifikation for at udskrive værdien af enhver variabel, såsom et tegn og et heltal. arguments_list: Dette er variabelnavnene, der svarer til formatspecifikationen.
Returværdi
- printf() returnerer antallet af tegn, der er udskrevet efter vellykket udførelse.
- Hvis der opstår en fejl, returneres en negativ værdi.
Eksempel på printf
I dette eksempel udskriver vi strengen Hello Geek! i outputtet ved hjælp af printf()-funktionen. I printf()-funktionen udskrives det, vi vil skrive inde i de dobbelte anførselstegn ( ), i outputtet.
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 en værdi være en karaktertype, heltalstype, flydende type og så videre. For at vise og formatere disse værdier ved hjælp af printf, har vi formatspecifikationer, der bruges i den formaterede streng. Disse formatangivelser starter med procentsymbolet '%'.
Syntaks for formatspecifikation
%[flags][width][.precision][length]specifier>
1. Specifikator
Det er tegnet, der angiver typen af data. Nogle almindeligt anvendte specifikationer er:
- %d : til udskrivning af heltal %f : til udskrivning af flydende kommatal %c: til udskrivning af tegn %s: til udskrivning af strenge %p: til udskrivning af hukommelsesadresser %x : til udskrivning af hexadecimale værdier
Eksempel
printf(' %c ', char_variable );> 2. Bredde
Det er underspecifikationen, der angiver det mindste antal tegn, der vil blive udskrevet.
Hvis antallet af tegn er mindre end den angivne bredde, vil det hvide mellemrum blive brugt til at udfylde de resterende tegns pladser. Men hvis antallet af tegn er større end den angivne bredde, vil alle tegn stadig blive udskrevet uden at afskære nogen.
Eksempel
printf('% 25 s', some_string );> eller
printf('% * s', 25 , some_string );> 3. Præcision
Præcisionsunderspecifikationsbetydningen er forskellig for forskellige formatspecifikationer, den bruges med.
design mønstre java
- For integrerede data(d, i, u, o, x, X): Angiver det mindste antal cifre, der skal udskrives. Men i modsætning til breddeunderspecifikationen tilføjer denne underspecifikation i stedet for hvide mellemrum indledende nuller til tallet. Hvis tallet har flere cifre end præcisionen, udskrives tallet, som det er. For flydende eller dobbelte data(f, e, a, A): Angiver antallet af cifre, der skal udskrives efter decimaltegnet. For streng(er): Angiver længden af den streng, der skal udskrives.
Eksempel
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ængde
Angiver længden af datatypen i hukommelsen. Det bruges i korrespondance 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>
Eksempel 2: printf med specificeret bredde
I dette eksempel vil vi angive bredden af outputtet, som vil blive udskrevet af 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, er alle tegnene stadig udskrevet, selvom vi definerer bredden, der er mindre end de nuværende tegn. Vi har også set de to måder, hvorpå vi kan definere bredden.
Eksempel 3: printf med Precision Sub-Specifier
I dette eksempel vil vi demonstrere præcisionsunderspecifikationen 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>
Eksempel 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>