In de C-taal wordt de functie printf() gebruikt om geformatteerde uitvoer naar de standaarduitvoer af te drukken stoer (wat meestal het consolescherm is). De printf-functie maakt deel uit van de C-standaardbibliotheek < stdio.h> en het kan het formatteren van de uitvoer op verschillende manieren mogelijk maken.
Syntaxis van printf
printf ( ' formatted_string ', arguments_list);>
Parameters
- formatted_string: Het is een string die de gegevens specificeert die moeten worden afgedrukt. Het kan ook een formaatspecificatie bevatten om de waarde van elke variabele, zoals een teken en een geheel getal, af te drukken. arguments_list: Dit zijn de namen van de variabelen die overeenkomen met de formaatspecificatie.
Winstwaarde
- printf() retourneert het aantal tekens dat is afgedrukt na een succesvolle uitvoering.
- Als er een fout optreedt, wordt een negatieve waarde geretourneerd.
Voorbeeld van printf
In dit voorbeeld drukken we de string Hello Geek! in de uitvoer met behulp van de printf()-functie. In de printf()-functie wordt wat we tussen de dubbele aanhalingstekens ( ) zullen schrijven in de uitvoer afgedrukt.
C
// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }> |
>
>Uitvoer
Hello Geek!>
Opmaak in C printf
In C kan een waarde een tekentype, geheel getaltype, floattype, enzovoort zijn. Om deze waarden weer te geven en op te maken met printf, hebben we formaatspecificaties die worden gebruikt in de opgemaakte tekenreeks. Deze formaatspecificaties beginnen met het percentagesymbool '%'.
Syntaxis van formaatspecificatie
%[flags][width][.precision][length]specifier>
1. Specificator
Het is het teken dat het type gegevens aangeeft. Enkele veelgebruikte specificaties zijn:
- %d: voor het afdrukken van gehele getallen %f: voor het afdrukken van getallen met drijvende komma %c: voor het afdrukken van tekens %s: voor het afdrukken van tekenreeksen %p: voor het afdrukken van geheugenadressen %x: voor het afdrukken van hexadecimale waarden
Voorbeeld
printf(' %c ', char_variable );> 2. Breedte
Het is de subspecificatie die het minimumaantal tekens aangeeft dat wordt afgedrukt.
Als het aantal tekens kleiner is dan de opgegeven breedte, wordt de witte ruimte gebruikt om de plaatsen van de overige tekens op te vullen. Maar als het aantal tekens groter is dan de opgegeven breedte, worden alle tekens nog steeds afgedrukt zonder dat er tekens worden afgesneden.
Voorbeeld
printf('% 25 s', some_string );> of
printf('% * s', 25 , some_string );> 3. Precisie
De betekenis van de precisie-onderspecificatie verschilt voor de verschillende formaatspecificaties waarmee het wordt gebruikt.
c++ paar
- Voor integrale gegevens(d, i, u, o, x, X): Specificeert het minimumaantal cijfers dat moet worden afgedrukt. Maar in tegenstelling tot de subspecificatie voor de breedte, voegt deze subspecificatie in plaats van spaties voorloopnullen toe aan het getal. Als het getal meer cijfers bevat dan de nauwkeurigheid, wordt het getal afgedrukt zoals het is. Voor zwevende of dubbele gegevens (f, e, a, A): specificeert het aantal cijfers dat moet worden afgedrukt na de komma. Voor tekenreeks(en): Specificeert de lengte van de tekenreeks die moet worden afgedrukt.
Voorbeeld
printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ;> of
printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string );> 4. Lengte
Specificeert de lengte van het gegevenstype in het geheugen. Het wordt gebruikt in correspondentie met 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;> }> |
>
>Uitvoer
The sum of 99 and 1 is 100>
Voorbeeld 2: printf met gespecificeerde breedte
In dit voorbeeld specificeren we de breedte van de uitvoer die wordt afgedrukt door de printf() functie.
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;> }> |
>
>Uitvoer
Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6>
Zoals we kunnen zien, worden alle tekens nog steeds afgedrukt, zelfs als we een breedte definiƫren die kleiner is dan de huidige tekens. We hebben ook de twee manieren gezien waarop we de breedte kunnen definiƫren.
Voorbeeld 3: printf met Precision Sub-Specifier
In dit voorbeeld demonstreren we de precisie-subspecificatie in de printf()-functie
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;> }> |
>
>Uitvoer
For integers: 0000002451 For floats: 12.45 For strings: Geeks>
Voorbeeld 4: printf met lengte-subspecificatie
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;> }> |
>
>Uitvoer
Using %d: -1294967296 Using %ld: 3000000000>