Спецификаторы и модификаторы преобразования C

Удобная ссылка на спецификаторы и модификаторы преобразования C

В этом посте я хочу создать полезную ссылку для всехCпреобразованиеспецификаторывы можете использовать, обычно сprintf(),scanf()и аналогичные функции ввода-вывода.

Спецификатор Смысл
%d/%i Знаковое десятичное целое число
%u Десятичное целое без знака
%c Без подписиchar
%s Нить
%p Указатель в шестнадцатеричной форме
%o Беззнаковое восьмеричное целое
%x/%X Беззнаковое шестнадцатеричное число
%e Число с плавающей запятой в экспоненциальном формате вeобозначение
%E Число с плавающей запятой в экспоненциальном формате вEобозначение
%f doubleчисло в десятичном формате
%g/%G doubleчисло в десятичном или экспоненциальном формате в зависимости от значения

В дополнение к этим спецификаторам у нас есть набормодификаторы.

Давайте начнем сцифры. Используя цифру между%и спецификатор формата, вы можете указать минимальную ширину поля. Пример:%3dзаймет 3 пробела независимо от напечатанного числа.

Этот:

printf("%4d\n", 1);
printf("%4d\n", 12);
printf("%4d\n", 123);
printf("%4d\n", 1234);

следует распечатать

   1
  12
 123
1234

If you put a dot before the digit, you are not telling the precision: the number of decimal digits. This of course applies to decimal numbers. Example:

printf("%4.2f\n", 1.0);
printf("%4.3e\n", 12.232432442);
printf("%4.1e\n", 12.232432442);
printf("%4.1f\n", 123.22);

will print:

1.00
1.223e+01
1.2e+01
123.2

In addition to digits, we have 3 special letters: h, l and L.

  • h, used with integer numbers, indicates a short int (for example %hd) or a short unsigned int (for example %hu)
  • l, used with integer numbers, indicates a long int (for example %ld) or a long unsigned int (for example %lu).
  • L, used with floating point numbers, indicates a long double, for example %Lf

Download my free C Handbook


More clang tutorials: