logo

Специфікатори формату в C

Специфікатор формату в C використовується, щоб повідомити компілятору про тип даних, які потрібно роздрукувати або відсканувати в операціях введення та виведення. Вони завжди починаються з a % і використовуються у форматованому рядку в таких функціях, як printf(), scanf, sprintf() тощо.

Мова C надає ряд специфікаторів формату, які пов’язані з різними типами даних, наприклад %d для int, %c для char тощо. У цій статті ми обговоримо деякі часто використовувані специфікатори формату та як їх використовувати.



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

Наведена нижче таблиця містить найбільш часто використовувані специфікатори формату в C

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

опис



%c

Для типу персонажа.

%d

Для знакового цілого типу.

%e або %E



конвертувати з рядка в ціле число java
Для наукового позначення поплавців.

%f

Для поплавкового типу.

%g або %G

Для плаваючого типу з поточною точністю.

%i

Ціле число без знака

%ld або %li

Довго

%lf

Двомісний

%Lf

Довга подвійна

%lu

Unsigned int або unsigned long

%lli або %lld

Довгий довгий

%llu

Беззнаковий довгий довгий

%O

Вісімкове представлення

%p

покажчик

%s

Рядок

% дюймів

Unsigned int

%x або %X

Шістнадцяткове представлення

%n

Нічого не друкує

%%

Друкує символ %

Приклади специфікаторів формату в C

1. Специфікатор формату символів – %c у C

%c є специфікатором формату для char тип даних мовою C. Його можна використовувати як для форматованого введення, так і для форматованого виведення мовою C.

Синтаксис:

scanf('  %d  ...', ...); printf('  %d  ...', ...);>

приклад:

C




// C Program to illustrate the %c format specifier.> #include> int> main()> {> >char> c;> >// using %c for character input> >scanf>(>'Enter some character: %c'>, &c);> >// using %c for character output> >printf>(>'The entered character: %c'>, &c);> >return> 0;> }>

>

>

введення:

Enter some character: A>

Вихід:

The entered character: A>

2. Специфікатор цілочисельного формату (зі знаком) – %d у C

Ми можемо використовувати специфікатор формату цілого числа зі знаком %d у функціях scanf() і print() або інших функціях, які використовують форматований рядок для введення та виведення внутр тип даних.

Синтаксис:

scanf('%d...', ...); printf('%i...', ...);>

приклад:

C




// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> >int> x;> >// taking integer input> >scanf>(>'Enter the two integers: %d'>, &x);> >// printing integer output> >printf>(>'Printed using %%d: %d '>, x);> >printf>(>'Printed using %%i: %3i '>, x);> >return> 0;> }>

>

>

введення:

Enter the integer: 45>

Вихід:

Printed using %d: 45 Printed using %i: 45>

3. Специфікатор формату беззнакового цілого числа – %u на C

%u є специфікатором формату для беззнакового цілого типу даних. Якщо ми вказуємо від’ємне ціле число для %u, воно перетворює ціле число на його перше доповнення.

Синтаксис:

printf('  %u  ...', ...); scanf('  %u  ...', ...);>

приклад: Наступна програма на С демонструє, як використовувати %u на С.

C




// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> >unsigned>int> var;> >scanf>(>'Enter an integer: %u'>, &var);> >printf>(>'Entered Unsigned Integer: %u'>, var);> >// trying to print negative value using %u> >printf>(>'Printing -10 using %%u: %u '>, -10);> >return> 0;> }>

>

безкоштовне проти безкоштовного

>

введення:

Enter an integer: 25>

Вихід:

Entered unsigned integer: 25 Printing -10 using %u: 4294967286>

4. Специфікатор формату з плаваючою комою – %f у C

The %f це специфікатор формату з плаваючою комою мовою C, який можна використовувати всередині відформатованого рядка для введення та виведення плавати тип даних. Окрім %f, ми можемо використовувати %Це є або специфікатори формату для друку значення з плаваючою комою в експоненціальній формі.

Синтаксис:

printf('  %f  ...', ...); scanf('  %e  ...', ...); printf('  %E  ...', ...);>

приклад:

C




// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> >float> a = 12.67;> >printf>(>'Using %%f: %f '>, a);> >printf>(>'Using %%e: %e '>, a);> >printf>(>'Using %%E, %E'>, a);> >return> 0;> }>

>

>

Вихід

Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>

5. Вісімкове число без знака для цілого числа – %o в C

Ми можемо використати специфікатор формату %o у програмі на C, щоб надрукувати або отримати вхідні дані для вісімкового цілого числа без знаку.

Синтаксис:

printf('  %o  ...', ...); scanf('  %o  ...', ...);>

приклад:

C




#include> int> main()> {> >int> a = 67;> >printf>(>'%o '>, a);> >return> 0;> }>

>

>

Вихід

103>

6. Беззнаковий шістнадцятковий для цілого числа – %x у C

Специфікатор формату %x використовується у відформатованому рядку для шістнадцяткових цілих чисел. У цьому випадку алфавіти в шістнадцяткових числах будуть написані малими літерами. Для цифр алфавіту у верхньому регістрі ми використовуємо %X.

Синтаксис:

printf('  %x  ...', ...); scanf('  %X  ...', ...);>

приклад:

C




// C Program to demonstrate the use of %x and %X> #include> int> main()> {> >int> a = 15454;> >printf>(>'%x '>, a);> >printf>(>'%X'>, a);> >return> 0;> }>

>

>

Вихід

3c5e 3C5E>

7. Специфікатор формату рядка – %s у C

%s у C використовується для друку рядків або прийому рядків як вхідних даних.

Синтаксис:

printf('  %s  ...', ...); scanf('  %s  ...', ...);>

приклад:

C

ipconfig на Ubuntu




// C program to illustrate the use of %s in C> #include> int> main()> {> >char> a[] =>'Hi Geeks'>;> >printf>(>'%s '>, a);> >return> 0;> }>

>

>

Вихід

Hi Geeks>

приклад: Робота %s із scanf() дещо відрізняється від роботи з printf(). Давайте розберемося в цьому за допомогою наступної програми на C.

C




// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> >char> str[50];> >// taking string as input> >scanf>(>'Enter the String: %s'>, str);> >printf>(>'Entered String: %s'>, str);> >return> 0;> }>

>

>

Введення

Enter the string: Hi Geeks>

Вихід

Hi>

Як ми бачимо, рядок сканується лише до тих пір, поки не буде виявлено пробіл. Ми можемо уникнути цього, використовуючи набори сканів у C .

8. Специфікатор формату адреси – %p у C

Мова C також надає специфікатор формату для друку адреси/вказівників. Ми можемо використовувати %p для друку адрес і покажчиків на C

Синтаксис

printf('  %p  ...', ...);>

приклад:

C




#include> int> main()> {> >int> a = 10;> >printf>(>'The Memory Address of a: %p '>,(>void>*)&a);> >return> 0;> }>

>

>

Вихід

The Memory Address of a: 0x7ffe9645b3fc>

Форматування введення та виведення

Мова C надає деякі інструменти, за допомогою яких ми можемо форматувати вхідні та вихідні дані. Зазвичай вони вставляються між знаком % і символом специфікатора формату. Деякі з них такі:

  1. Знак мінус (-) означає вирівнювання за лівим краєм.
  2. Число після % вказує мінімальну ширину поля для друку, якщо розмір символів менший за ширину простору, що залишився, заповненого пробілом, а якщо він більший, тоді воно друкується як є без скорочення.
  3. Символ крапки ( . ) поділяє ширину поля з точністю.

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

Приклад форматування введення/виведення

C




// C Program to demonstrate the formatting methods.> #include> int> main()> {> >char> str[] =>'geeksforgeeks'>;> >printf>(>'%20s '>, str);> >printf>(>'%-20s '>, str);> >printf>(>'%20.5s '>, str);> >printf>(>'%-20.5s '>, str);> >return> 0;> }>

>

>

java int як рядок
Вихід

 geeksforgeeks geeksforgeeks geeks geeks>

Поширені запитання щодо специфікаторів формату C

1. Чи є в С специфікатор формату для двійкових чисел?

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

2. Що таке відформатований рядок?

Функції введення та виведення в C приймають рядок як аргумент, який визначає, як дані відображаються на екрані або дані витягуються в пам’ять. Цей рядок називається відформатованим рядком.