En llenguatge C, la funció printf() s'utilitza per imprimir la sortida amb format a la sortida estàndard stdout (que generalment és la pantalla de la consola). La funció printf forma part de la biblioteca estàndard C < stdio.h> i pot permetre formatar la sortida de moltes maneres.
Sintaxi de printf
printf ( ' formatted_string ', arguments_list);>
Paràmetres
- formatted_string: És una cadena que especifica les dades que s'han d'imprimir. També pot contenir un especificador de format per imprimir el valor de qualsevol variable, com ara un caràcter i un nombre enter. llista_arguments: són els noms de variables corresponents a l'especificador de format.
Valor de retorn
- printf() retorna el nombre de caràcters impresos després d'una execució correcta.
- Si es produeix un error, es retorna un valor negatiu.
Exemple de printf
En aquest exemple, estem imprimint la cadena Hello Geek! a la sortida utilitzant la funció printf(). A la funció printf() s'imprimeix a la sortida el que escriurem dins de les cometes dobles ( ).
C
// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }> |
>
>Sortida
Hello Geek!>
Format en C printf
En C, un valor pot ser un tipus de caràcter, un tipus d'enter, un tipus flotant, etc. Per mostrar i formatar aquests valors mitjançant printf, tenim especificadors de format que s'utilitzen a la cadena formatada. Aquests especificadors de format comencen amb el símbol de percentatge '%'.
Sintaxi de l'especificador de format
%[flags][width][.precision][length]specifier>
1. Especificador
És el caràcter que denota el tipus de dades. Alguns especificadors d'ús habitual són:
- %d: per imprimir nombres enters %f: per imprimir números de coma flotant %c: per imprimir caràcters %s: per imprimir cadenes %p: per imprimir adreces de memòria %x: per imprimir valors hexadecimals
Exemple
printf(' %c ', char_variable );> 2. Amplada
És el subespecificador que indica el nombre mínim de caràcters que s'imprimiran.
Si el nombre de caràcters és inferior a l'amplada especificada, l'espai en blanc s'utilitzarà per omplir els llocs de caràcters restants. Però si el nombre de caràcters és superior a l'amplada especificada, tots els caràcters s'imprimiran sense tallar-ne cap.
Exemple
printf('% 25 s', some_string );> o
printf('% * s', 25 , some_string );> 3. Precisió
El significat del subespecificador de precisió és diferent per als diferents especificadors de format amb què s'utilitza.
exemple de classe java
- Per a dades integrals (d, i, u, o, x, X): especifica el nombre mínim de dígits que s'han d'imprimir. Però a diferència del subespecificador d'amplada, en comptes d'espais en blanc, aquest subespecificador afegeix zeros inicials al nombre. Si el número té més dígits que la precisió, el número s'imprimeix tal com està. Per a dades flotants o dobles (f, e, a, A): especifica el nombre de dígits que s'han d'imprimir després del punt decimal. Per a la cadena (s): especifica la longitud de la cadena que s'ha d'imprimir.
Exemple
printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ;> o
printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string );> 4. Longitud
Especifica la longitud del tipus de dades a la memòria. S'utilitza en correspondència amb 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;> }> |
>
>Sortida
The sum of 99 and 1 is 100>
Exemple 2: printf amb una amplada especificada
En aquest exemple, especificarem l'amplada de la sortida que s'imprimirà amb la funció printf().
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;> }> |
>
>Sortida
Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6>
Com podem veure, encara que definim l'amplada que és menor que els caràcters actuals, tots els caràcters encara estan impresos. A més, hem vist les dues maneres en què podem definir l'amplada.
Exemple 3: printf amb el subespecificador de precisió
En aquest exemple, demostrarem el subespecificador de precisió a la funció printf().
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;> }> |
>
>Sortida
For integers: 0000002451 For floats: 12.45 For strings: Geeks>
Exemple 4: printf amb el subespecificador de longitud
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;> }> |
>
>Sortida
Using %d: -1294967296 Using %ld: 3000000000>