logo

printf у C

У мові C функція printf() використовується для друку форматованого виводу в стандартний вивід stdout (зазвичай це екран консолі). Функція printf є частиною стандартної бібліотеки C < stdio.h> і це може дозволити форматування виводу різними способами.

Синтаксис printf

 printf  ( ' formatted_string ',   arguments_list);>

Параметри

    formatted_string: це рядок, який визначає дані для друку. Він також може містити специфікатор формату для друку значення будь-якої змінної, такої як символ або ціле число. список_аргументів: це імена змінних, що відповідають специфікатору формату.

Повернене значення

  • printf() повертає кількість символів, надрукованих після успішного виконання.
  • Якщо виникає помилка, повертається від’ємне значення.

Приклад printf

У цьому прикладі ми друкуємо рядок Hello Geek! у вихідних даних за допомогою функції printf(). У функції printf() виводиться те, що ми будемо писати в подвійних лапках ( ).



C






// C program to illustrate the use of printf function> #include> int> main()> {> >// using printf to print 'Hello Geek!'> >printf>(>'Hello Geek!'>);> >return> 0;> }>



>

>

Вихід

Hello Geek!>

Форматування в C printf

У C значення може бути символьним типом, цілим типом, типом з плаваючою точкою тощо. Щоб відобразити та відформатувати ці значення за допомогою printf, ми маємо специфікатори формату, які використовуються у відформатованому рядку. Ці специфікатори формату починаються із символу відсотка '%'.

Синтаксис специфікатора формату

%[flags][width][.precision][length]specifier>

1. Специфікатор

Це символ, який позначає тип даних. Деякі часто використовувані специфікатори:

    %d : для друку цілих чисел %f : для друку чисел з плаваючою комою %c : для друку символів %s: для друку рядків %p : для друку адрес пам’яті %x : для друку шістнадцяткових значень

приклад

printf(' %c ', char_variable );>

2. Ширина

Це підспецифікатор, який позначає мінімальну кількість символів, які будуть надруковані.

Якщо кількість символів менша за вказану ширину, пробіл буде використано для заповнення місць, що залишилися. Але якщо кількість символів перевищує вказану ширину, усі символи все одно будуть надруковані без обрізання.

приклад

printf('% 25 s', some_string );>

або

printf('% * s', 25 , some_string );>

3. Точність

Значення підспецифікатора точності відрізняється для різних специфікаторів формату, з якими він використовується.

різниця між $ і $$
    Для інтегральних даних (d, i, u, o, x, X): вказує мінімальну кількість цифр для друку. Але на відміну від підспецифікатора ширини, замість пробілів цей підспецифікатор додає початкові нулі до числа. Якщо число містить більше цифр, ніж точність, число друкується без змін. Для Float або Double Data(f, e, a, A) : визначає кількість цифр, які друкуються після коми. Для рядка (s): визначає довжину рядка для друку.

приклад

printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ;>

або

printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string );>

4. Довжина

Визначає довжину типу даних у пам'яті. Він використовується в листуванні з 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;> }>

>

>

Вихід

The sum of 99 and 1 is 100>

Приклад 2: printf із заданою шириною

У цьому прикладі ми вкажемо ширину виводу, який буде надруковано функцією 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;> }>

>

>

Вихід

Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6>

Як ми бачимо, навіть якщо ми визначимо ширину, меншу за поточні символи, усі символи все одно друкуються. Крім того, ми бачили два способи, якими ми можемо визначити ширину.

Приклад 3: printf із підспецифікатором Precision

У цьому прикладі ми продемонструємо підспецифікатор точності у функції 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;> }>

>

>

Вихід

For integers: 0000002451 For floats: 12.45 For strings: Geeks>

Приклад 4: printf із підспецифікатором довжини

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;> }>

>

>

Вихід

Using %d: -1294967296 Using %ld: 3000000000>

Пов'язані статті: