Специфікатор формату в 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 надає деякі інструменти, за допомогою яких ми можемо форматувати вхідні та вихідні дані. Зазвичай вони вставляються між знаком % і символом специфікатора формату. Деякі з них такі:
- Знак мінус (-) означає вирівнювання за лівим краєм.
- Число після % вказує мінімальну ширину поля для друку, якщо розмір символів менший за ширину простору, що залишився, заповненого пробілом, а якщо він більший, тоді воно друкується як є без скорочення.
- Символ крапки ( . ) поділяє ширину поля з точністю.
Точність визначає мінімальну кількість цифр у цілому числі, максимальну кількість символів у рядку та кількість цифр після десяткової частини у плаваючому значенні.
Приклад форматування введення/виведення
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 приймають рядок як аргумент, який визначає, як дані відображаються на екрані або дані витягуються в пам’ять. Цей рядок називається відформатованим рядком.