W języku C funkcja printf() służy do wypisywania sformatowanych wyników na standardowe wyjście standardowe wyjście (który jest zazwyczaj ekranem konsoli). Funkcja printf jest częścią standardowej biblioteki C < stdio.h> i może pozwolić na formatowanie danych wyjściowych na wiele sposobów.
Składnia printf
printf ( ' formatted_string ', arguments_list);>
Parametry
- formatted_string: Jest to ciąg znaków określający dane do wydrukowania. Może także zawierać specyfikator formatu umożliwiający wydrukowanie wartości dowolnej zmiennej, np. znaku lub liczby całkowitej. lista_argumentów: Są to nazwy zmiennych odpowiadające specyfikatorowi formatu.
Wartość zwracana
- printf() zwraca liczbę znaków wydrukowanych po pomyślnym wykonaniu.
- Jeśli wystąpi błąd, zwracana jest wartość ujemna.
Przykład printf
W tym przykładzie drukujemy ciąg Hello Geek! na wyjściu za pomocą funkcji printf(). W funkcji printf() to, co napiszemy w cudzysłowie ( ), zostanie wypisane na wyjściu.
C
// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }> |
>
>Wyjście
Hello Geek!>
Formatowanie w C printf
W C wartość może być typem znakowym, typem całkowitym, typem zmiennoprzecinkowym i tak dalej. Aby wyświetlić i sformatować te wartości za pomocą printf, mamy specyfikatory formatu używane w sformatowanym ciągu. Te specyfikatory formatu zaczynają się od symbolu procentu „%”.
Składnia specyfikatora formatu
%[flags][width][.precision][length]specifier>
1. Specyfikator
Jest to znak oznaczający typ danych. Niektóre powszechnie używane specyfikatory to:
- %d: do drukowania liczb całkowitych %f: do drukowania liczb zmiennoprzecinkowych %c: do drukowania znaków %s: do drukowania ciągów znaków %p: do drukowania adresów pamięci %x: do drukowania wartości szesnastkowych
Przykład
printf(' %c ', char_variable );> 2. Szerokość
Jest to podspecyfikator określający minimalną liczbę znaków, które zostaną wydrukowane.
Jeśli liczba znaków jest mniejsza niż podana szerokość, do wypełnienia pozostałych znaków wykorzystana zostanie biała spacja. Jeśli jednak liczba znaków jest większa niż określona szerokość, wszystkie znaki zostaną wydrukowane bez obcięcia żadnego.
Przykład
printf('% 25 s', some_string );> Lub
printf('% * s', 25 , some_string );> 3. Precyzja
Znaczenie podspecyfikatora precyzji jest różne dla różnych specyfikatorów formatu, z którymi jest używany.
python os listdir
- Dla danych całkowitych (d, i, u, o, x, X): Określa minimalną liczbę cyfr do wydrukowania. Jednak w przeciwieństwie do podspecyfikatora szerokości, zamiast białych spacji, ten podspecyfikator dodaje do liczby zera wiodące. Jeśli liczba ma więcej cyfr niż dokładność, zostanie wydrukowana w niezmienionej postaci. Dla danych zmiennoprzecinkowych lub podwójnych (f, e, a, A): Określa liczbę cyfr drukowanych po przecinku dziesiętnym. Dla ciągu znaków: Określa długość ciągu znaków do wydrukowania.
Przykład
printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ;> Lub
printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string );> 4. Długość
Określa długość typu danych w pamięci. Jest używany w korespondencji z 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;> }> |
>
>Wyjście
The sum of 99 and 1 is 100>
Przykład 2: printf z określoną szerokością
W tym przykładzie określimy szerokość wyniku, który zostanie wydrukowany przez funkcję 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;> }> |
>
>Wyjście
Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6>
Jak widzimy, nawet jeśli zdefiniujemy szerokość mniejszą niż obecne znaki, wszystkie znaki i tak zostaną wydrukowane. Widzieliśmy także dwa sposoby definiowania szerokości.
Przykład 3: printf z podspecyfikatorem dokładności
W tym przykładzie zademonstrujemy podspecyfikator precyzji w funkcji 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;> }> |
>
>Wyjście
For integers: 0000002451 For floats: 12.45 For strings: Geeks>
Przykład 4: printf z podspecyfikatorem długości
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;> }> |
>
>Wyjście
Using %d: -1294967296 Using %ld: 3000000000>