Nel linguaggio C, la funzione printf() viene utilizzata per stampare l'output formattato sullo standard output stdout (che generalmente è lo schermo della console). La funzione printf fa parte della libreria standard C < stdio.h> e può consentire la formattazione dell'output in numerosi modi.
Sintassi di printf
printf ( ' formatted_string ', arguments_list);>
Parametri
- formatted_string: è una stringa che specifica i dati da stampare. Può anche contenere un identificatore di formato per stampare il valore di qualsiasi variabile come un carattere e un numero intero. lista_argomenti: questi sono i nomi delle variabili corrispondenti allo specificatore di formato.
Valore di ritorno
- printf() restituisce il numero di caratteri stampati dopo l'esecuzione riuscita.
- Se si verifica un errore, viene restituito un valore negativo.
Esempio di printf
In questo esempio, stiamo stampando la stringa Hello Geek! nell'output utilizzando la funzione printf(). Nella funzione printf() ciò che scriveremo tra virgolette doppie ( ) viene stampato nell'output.
C
// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }> |
>
>Produzione
Hello Geek!>
Formattazione in C printf
In C, un valore può essere un tipo di carattere, un tipo intero, un tipo float e così via. Per visualizzare e formattare questi valori utilizzando printf, abbiamo specificatori di formato utilizzati nella stringa formattata. Questi identificatori di formato iniziano con il simbolo di percentuale '%'.
Sintassi dell'identificatore di formato
%[flags][width][.precision][length]specifier>
1. Specificatore
È il carattere che denota il tipo di dati. Alcuni specificatori comunemente usati sono:
- %d: per stampare numeri interi %f: per stampare numeri a virgola mobile %c: per stampare caratteri %s: per stampare stringhe %p: per stampare indirizzi di memoria %x: per stampare valori esadecimali
Esempio
printf(' %c ', char_variable );> 2. Larghezza
È il sottospecificatore che denota il numero minimo di caratteri che verranno stampati.
Se il numero di caratteri è inferiore alla larghezza specificata, lo spazio bianco verrà utilizzato per riempire i posti dei caratteri rimanenti. Ma se il numero di caratteri è maggiore della larghezza specificata, tutti i caratteri verranno comunque stampati senza tagliarne alcuno.
Esempio
printf('% 25 s', some_string );> O
printf('% * s', 25 , some_string );> 3. Precisione
Il significato del sottoidentificatore di precisione varia a seconda degli identificatori di formato con cui viene utilizzato.
Java esegue il ciclo while
- Per dati integrali(d, i, u, o, x, X): specifica il numero minimo di cifre da stampare. Ma a differenza del sottospecificatore larghezza, invece degli spazi bianchi, questo sottospecificatore aggiunge zeri iniziali al numero. Se il numero ha più cifre della precisione, il numero viene stampato così com'è. Per Float o Double Data(f, e, a, A): specifica il numero di cifre da stampare dopo il separatore decimale. Per String (s): specifica la lunghezza della stringa da stampare.
Esempio
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. Lunghezza
Specifica la lunghezza del tipo di dati nella memoria. Viene utilizzato in corrispondenza di 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;> }> |
>
>Produzione
The sum of 99 and 1 is 100>
Esempio 2: printf con larghezza specificata
In questo esempio specificheremo la larghezza dell'output che verrà stampato dalla funzione 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;> }> |
>
>Produzione
Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6>
Come possiamo vedere, anche se definiamo una larghezza inferiore ai caratteri presenti, tutti i caratteri verranno comunque stampati. Inoltre, abbiamo visto i due modi in cui possiamo definire la larghezza.
Esempio 3: printf con Precision Sub-Specifier
In questo esempio, dimostreremo il sottospecificatore di precisione nella funzione 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;> }> |
>
>Produzione
For integers: 0000002451 For floats: 12.45 For strings: Geeks>
Esempio 4: printf con sottospecificatore di lunghezza
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;> }> |
>
>Produzione
Using %d: -1294967296 Using %ld: 3000000000>