Непонятны спецификаторы в printf - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Прошу объяснить подробно , что делает строка:
#define TRACE(msg, val)  printf("TRACE: %*c" msg, 2 * level + 1, ' ', val);
Как define Работает то знаю, но что это такое: %*с

Решение задачи: «Непонятны спецификаторы в 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;
}

Объяснение кода листинга программы

  1. Включаем заголовочный файл для использования функций ввода-вывода
  2. Объявляем функцию main() — точку входа в программу
  3. Выводим символ 'a' с помощью функции printf() с использованием спецификатора формата %*c где: — 3 - указывает на поле вывода в 3 символа — 'a' — символ, который будет выведен
  4. Выводим символ 'b' с помощью функции printf() с использованием спецификатора формата %*c где: — 4 - указывает на поле вывода в 4 символа — 'b' — символ, который будет выведен
  5. Выводим символ 'c' с помощью функции printf() с использованием спецификатора формата %*c где: — 5 - указывает на поле вывода в 5 символов — 'c' — символ, который будет выведен
  6. Выводим символы 'x' и 'y' с помощью функции printf() с использованием спецификатора формата %*c%*c где: — 2 - указывает на поле вывода в 2 символа — 'x' — первый символ, который будет выведен — 3 - указывает на поле вывода в 3 символа — 'y' — второй символ, который будет выведен
  7. Выводим число 12 с помощью функции printf() с использованием спецификатора формата %*d где: — 5 - указывает на поле вывода в 5 символов — 12 - число, которое будет выведено
  8. Выводим число 123456 с помощью функции printf() с использованием спецификатора формата %*d где: — 5 - указывает на поле вывода в 5 символов — 123456 - число, которое будет выведено
  9. Выводим строку abc с помощью функции printf() с использованием спецификатора формата %*s где: — 5 - указывает на поле вывода в 5 символов — abc — строка, которая будет выведена
  10. Выводим строку abcdefg с помощью функции printf() с использованием спецификатора формата %*s где: — 5 - указывает на поле вывода в 5 символов — abcdefg — строка, которая будет выведена
  11. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5