Оригінальна публікація: Format Specifiers in C
Специфікатори формату визначають тип даних для друку на стандартному виводі. Ви повинні використовувати специфікатори формату незалежно від того, друкуєте ви відформатований вивід з printf() чи приймаєте ввід з scanf().
Ось деякі специфікатори %, які можна використовувати в ANSI C:
| Специфікатор | Використовують для |
|---|---|
| %c | одиничний символ |
| %s | рядок |
| %hi | коротке (знакове) |
| %hu | коротке (беззнакове) |
| %Lf | довге подвійне |
| %n | нічого не друкує |
| %d | десяткове ціле число (припускає базу 10) |
| %i | десяткове ціле число (автоматично визначає базу) |
| %o | вісімкове ціле число |
| %x | шістнадцяткове ціле число |
| %p | адреса (або вказівник) |
| %f | число з рухомою комою |
| %u | десяткове ціле число (беззнакове) |
| %e | число з рухомою комою в експоненціальному записі |
| %E | число з рухомою комою в експоненціальному записі |
| %% | символ % |
Приклади:
Специфікатор формату одиничного символу %c:
#include <stdio.h>
int main() {
char first_ch = 'f';
printf("%c\n", first_ch);
return 0;
} Вивід:
fСпецифікатор формату рядка %s:
#include <stdio.h>
int main() {
char str[] = "freeCodeCamp";
printf("%s\n", str);
return 0;
} Вивід:
freeCodeCampВвід одиничного символу з специфікатором формату %c:
#include <stdio.h>
int main() {
char user_ch;
scanf("%c", &user_ch); // user inputs Y
printf("%c\n", user_ch);
return 0;
} Вивід:
YВвід рядка з специфікатором формату %s:
#include <stdio.h>
int main() {
char user_str[20];
scanf("%s", user_str); // user inputs fCC
printf("%s\n", user_str);
return 0;
} Вивід:
fCCСпецифікатори формату десяткового цілого числа %d та %i:
#include <stdio.h>
int main() {
int found = 2015, curr = 2020;
printf("%d\n", found);
printf("%i\n", curr);
return 0;
} Вивід:
2015
2020Специфікатори формату числа з рухомою комою %f та %e:
#include <stdio.h>
int main() {
float num = 19.99;
printf("%f\n", num);
printf("%e\n", num);
return 0;
}Вивід:
19.990000
1.999000e+01Специфікатор формату вісімкового цілого числа %o:
#include <stdio.h>
int main() {
int num = 31;
printf("%o\n", num);
return 0;
}Вивід:
37Специфікатор формату шістнадцяткового цілого числа %x:
#include <stdio.h>
int main() {
int c = 28;
printf("%x\n", c);
return 0;
} Вивід:
1c