sprintf – функция для вывода форматированных данных в строку. Для форматирования вывода используется символьная строка формата. Если функция находит в строке символ % с указанным типом формата и необязательными дополнительными полями, то соответствующий аргумент функции преобразуется при выходе в указанный формат.
Каждый элемент строки формата состоит из нескольких полей:
% [флаг] [ширина] [точность] [модфикатор_типа] тип_формата
[ ] – необязательные, дополнительные поля.
Ниже таблицы с описанием полей и их действий.
Тип формата
флаги Ширина – это число задает минимальную ширину поля вывода в символах. Если число подлежащих выводу символов меньше, чем указано в этом поле, то слева и справа добавляются пробелы для достижения указанного значения. Если перед числом стоит нуль, то вместо пробелов добавляются нули.
Точность – задает число десятичных знаков, выводимых после точки. Действие поля зависит от типа данных.
Перед типом формата могут стоять различные модификаторы типа.
Модификаторы типа
Управляющие знаки
Они используются следующим образом:
Пример использования функции в среде CodeVisionAVR 1.25.9
. . . sprintf( array,”text %u”,temp ); //дес.число из перемен.temp помещается в массив array lcd_puts( array ); //массив array содержит форматированную строку для вывода на ЖКИ . . .
Или из двух переменных:
sprintf( array,”text %u,%x”,temp1,temp2 ); //выводим сначала из temp1, потом из temp2 //( запятая будет отображаться ) по //связке: temp1 к %u, temp2 к %x. lcd_puts( array ); . . .
К переменным temp1, temp2 можно применять любые математические операции. Вывод значения температуры, измеренное датчиком ds18b20 на индикатор: ... temp=ds18b20_temperature( 0 ) * 10; ... signs='+'; ... sprintf( array,"t %c%i.%u\xdfC",signs,temp/10,temp%10 ); lcd_gotoxy( 4,1 ); lcd_puts( array ); ...
|