I C-språk brukes printf()-funksjonen til å skrive ut formatert utdata til standardutdata stdout (som vanligvis er konsollskjermen). Printf-funksjonen er en del av C-standardbiblioteket < stdio.h> og det kan tillate formatering av utdataene på mange måter.
Syntaks for printf
printf ( ' formatted_string ', arguments_list);>
Parametere
- formatted_string: Det er en streng som spesifiserer dataene som skal skrives ut. Den kan også inneholde en formatspesifikasjon for å skrive ut verdien til en hvilken som helst variabel, for eksempel et tegn og et heltall. arguments_list: Dette er variabelnavnene som tilsvarer formatspesifikatoren.
Returverdi
- printf() returnerer antall tegn som er skrevet ut etter vellykket kjøring.
- Hvis det oppstår en feil, returneres en negativ verdi.
Eksempel på printf
I dette eksemplet skriver vi ut strengen Hello Geek! i utdata ved å bruke printf()-funksjonen. I funksjonen printf() skrives det vi skal skrive i de doble anførselstegnene ( ) i utdataene.
C
// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }> |
>
>Produksjon
Hello Geek!>
Formatering i C printf
I C kan en verdi være en tegntype, heltallstype, flytetype og så videre. For å vise og formatere disse verdiene ved hjelp av printf, har vi formatspesifikasjoner som brukes i den formaterte strengen. Disse formatspesifikasjonene starter med prosentsymbolet '%'.
Syntaks for formatspesifikasjoner
%[flags][width][.precision][length]specifier>
1. Spesifiser
Det er tegnet som angir typen data. Noen ofte brukte spesifikasjoner er:
- %d : for utskrift av heltall %f : for utskrift av flytende tall %c: for utskrift av tegn %s: for utskrift av strenger %p: for utskrift av minneadresser %x : for utskrift av heksadesimale verdier
Eksempel
printf(' %c ', char_variable );> 2. Bredde
Det er underspesifikasjonen som angir minimum antall tegn som skal skrives ut.
Hvis antallet tegn er mindre enn den angitte bredden, vil det hvite mellomrommet bli brukt til å fylle plassene til de resterende tegnene. Men hvis antallet tegn er større enn den angitte bredden, vil alle tegnene fortsatt skrives ut uten å kutte av noen.
Eksempel
printf('% 25 s', some_string );> eller
printf('% * s', 25 , some_string );> 3. Presisjon
Presisjonsunderspesifikasjonsbetydningen er forskjellig for forskjellige formatspesifikasjoner den brukes med.
design mønstre java
- For integrerte data(d, i, u, o, x, X): Angir minimum antall sifre som skal skrives ut. Men i motsetning til breddeunderspesifikasjonen, i stedet for mellomrom, legger denne underspesifikasjonen innledende nuller til tallet. Hvis tallet har flere sifre enn nøyaktigheten, skrives tallet ut som det er. For flytende eller doble data(f, e, a, A): Angir antall sifre som skal skrives ut etter desimaltegnet. For streng(er): Angir lengden på strengen som skal skrives ut.
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. Lengde
Angir lengden på datatypen i minnet. Den brukes i korrespondanse 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;> }> |
>
>Produksjon
The sum of 99 and 1 is 100>
Eksempel 2: printf med spesifisert bredde
I dette eksemplet vil vi spesifisere bredden på utdataene som vil bli skrevet ut av printf()-funksjonen.
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;> }> |
>
>Produksjon
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, selv om vi definerer bredden som er mindre enn de nåværende tegnene, blir alle tegnene fortsatt skrevet ut. Vi har også sett de to måtene vi kan definere bredden på.
Eksempel 3: printf med Precision Sub-Specifier
I dette eksemplet vil vi demonstrere presisjonsunderspesifikasjonen i printf()-funksjonen
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;> }> |
>
>Produksjon
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;> }> |
>
>Produksjon
Using %d: -1294967296 Using %ld: 3000000000>