Непонятны спецификаторы в printf - C (СИ)
Формулировка задачи:
Прошу объяснить подробно , что делает строка:
Как define Работает то знаю, но что это такое: %*с
#define TRACE(msg, val) printf("TRACE: %*c" msg, 2 * level + 1, ' ', val);Решение задачи: «Непонятны спецификаторы в printf»
textual
Листинг программы
#include <stdio.h>
int main (void)
{
printf ("%*c\n", 3, 'a');
printf ("%*c\n", 4, 'b');
printf ("%*c\n", 5, 'c');
printf ("%*c%*c\n", 2, 'x', 3, 'y');
printf ("%*d\n", 5, 12);
printf ("%*d\n", 5, 123456);
printf ("%*s\n", 5, "abc");
printf ("%*s\n", 5, "abcdefg");
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл
для использования функций ввода-вывода - Объявляем функцию main() — точку входа в программу
- Выводим символ 'a' с помощью функции printf() с использованием спецификатора формата
%*cгде: — 3 - указывает на поле вывода в 3 символа — 'a' — символ, который будет выведен - Выводим символ 'b' с помощью функции printf() с использованием спецификатора формата
%*cгде: — 4 - указывает на поле вывода в 4 символа — 'b' — символ, который будет выведен - Выводим символ 'c' с помощью функции printf() с использованием спецификатора формата
%*cгде: — 5 - указывает на поле вывода в 5 символов — 'c' — символ, который будет выведен - Выводим символы 'x' и 'y' с помощью функции printf() с использованием спецификатора формата
%*c%*cгде: — 2 - указывает на поле вывода в 2 символа — 'x' — первый символ, который будет выведен — 3 - указывает на поле вывода в 3 символа — 'y' — второй символ, который будет выведен - Выводим число 12 с помощью функции printf() с использованием спецификатора формата
%*dгде: — 5 - указывает на поле вывода в 5 символов — 12 - число, которое будет выведено - Выводим число 123456 с помощью функции printf() с использованием спецификатора формата
%*dгде: — 5 - указывает на поле вывода в 5 символов — 123456 - число, которое будет выведено - Выводим строку
abcс помощью функции printf() с использованием спецификатора формата%*sгде: — 5 - указывает на поле вывода в 5 символов —abc— строка, которая будет выведена - Выводим строку
abcdefgс помощью функции printf() с использованием спецификатора формата%*sгде: — 5 - указывает на поле вывода в 5 символов —abcdefg— строка, которая будет выведена - Возвращаем 0, чтобы указать, что программа успешно завершилась