C: Вывод информации

Вывод информации на экран (точнее, в терминал) является одной из основных функций приложения с интерфейсом командной строки. Для этой цели используется функция printf, например:

printf("Hello, World!");

Вы наверняка обратили внимание на то, что после запуска программы и вывода строки «Hello World!» терминал ожидает ввода пользовательской команды в той же строке. Да, упомянутая функция не добавляет к выводимой строке символа перехода на новую строку, поэтому терминал и не перемещает курсор на новую строку. По этой причине разработчик должен сам добавлять символы перехода на новые строки n при использовании функции printf, например:

printf("Hello, World!n");

Также вы можете использовать символ табуляции t для разделения вывода на столбцы, например:

printf("Hello,tWorld!");

Форматирование строк

В большинстве случаев разработчику приходится выводить с помощью функции printf не обычные строки, а строки со значениями переменных. Для этого используются строки форматирования со спецификаторами, автоматически заменяемыми на значения указанных переменных.

printf("Привет, %s!", name);

В рамках одной строки форматирования может использоваться множество спецификаторов. Важно помнить о том, что количество переменных должно равняться количеству спецификаторов, причем тип каждой переменной должен соответствовать ее спецификатору.

printf("Числа: %i %i %i", n1, n2, n3);

А это список наиболее часто используемых спецификаторов:

Спецификатор Тип переменной
%s Строка (char *)
%i Целочисленное значение (int)
%d Целочисленное значение (int)
%f Значение с плавающей точкой двойной точности (double)
Символ (char)
%hi Короткое целочисленное значение (short)
%hu Короткое беззнаковое целочисленное значение (unsigned short)
%u Беззнаковое целочисленное значение (unsigned int)
%li Длинное целочисленное значение (long)
%lu Длинное беззнаковое челочисленное значение (unsigned long)
%lli Расширенное длинное целочисленное значение (long long)
%llu Расширенное длинное беззнаковое целочисленное значение (long long)
%lf Расширенное значение с плавающей точкой двойной точности (long double)