Функция sprintf стандартной библиотеки stdio.h

article27.jpg

Материал взят с сайта http://mega-avr.ucoz.ru

Автор skiff

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 );
 ...


Похожие статьи:

Микроконтроллерные системыCodeVision AVR. Вывод информации на ЖКИ. Использование библиотечных функций

Микроконтроллерные системыПонятие функции в языке программирования С

Заметки на поляхРусский шрифт на LCD

Комментарии (0)

Нет комментариев. Ваш будет первым!