logo

printf en C

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>

Articles relacionats: