stdio.h

vprintf

Описание

int vprintf( char *format, va_list arg_ptr )

Извежда низ, форматиран на базата на параметъра format.

Параметри

char *format

Форматиращия низ е съставен от нула или повече нормални символи и директиви за преобразуване. Всяка директива за преобразуване започва с знака % и се заменя с един параметър.

Типове директиви за форматиране

Директива Описание
%% Отпечатва процент
%c Отпечатва символ
%d Отпечатва int със знак
%i Отпечатва int със знак
%e Отпечатва се в научна нотация е
%E Отпечатва се в научна нотация Е
%f Отпечатва число с плаваща запетая
%g Отпечатай с по краткото %е или %f
%G Отпечатай с по краткото %E или %f
%o Отпечатва числото в осмично представяне
%s Отпечатва низ
%u Огпечатва unsigned int
%x Отпечатва число в 16-тичен формат с малки букви
%X Отпечатва число в 16-тичен формат с големи букви
%p Отпечатва указател
%n  

Всяка директива за форматиране в допълнение може да притежава четери вида флага. Флагове за подравняване и запълване, флагове за дължина, флагове за точност и флагове за модифициране.

Флагове за подравняване и запълване

Флаг Описание
- Ляво подравняване при зададена дилжина на запълване. По подразбиране подравняването е десно.
+ Задава показването венаги на знака за плюс или минус. По подразбиране се показва знака само за минус.
(интервал) Ако не е зададен знак за отпечатване, интервал се печата пред числото.
# Използва се с %x %X. Задава пред числото да бъде поставен знака 0x.
0 Запълването на определената дължина се осъществява с нули. По подразбиране е с интервали.

 Флагове за дължина

Флаг Описание
(дължина) Минимален брой символи за отпечатване. Ако дължината на стоиноста и по малка от зададената резултата се допълва с интевали. Стойноста не се отрязва ако дължината и не надхвърла зададената.
* Минималния брой символи се задава динамично чрез параметър в аргументите.

Флагове за точност

Флаг Описание
.дължина

За целочислени типове(%d ,%i, %u, %o, %x, %X) флага определя броя на символите кайто ще бъдат показани. За числа с плаваща запетая (%f, %E) определя броя символи които ще бъдат показани след запетаята. За низове задава максималния брой символи който ще бъдат отпечатани.

.*  Задава броя на символите динамично чрез параметър.

 Флагове за модифициране

Флаг Описание
h Визуализира short int параметри. Използва се с целочислиени типове(%d ,%i, %u, %o, %x, %X).
l Визуализира long int пораметри с целочислени типове(%d ,%i, %u, %o, %x, %X) и разширени низове с %s.
L Визуализира long double параметри. Използва се с типове за плаваща запетая (%f, %g, %G, %e, %E).

 

va_list arg_ptr

va_list е тип, който се използва да държи списък от параметри подадени на функцията чрез макроса "...". За да бъде взет такъв лист се използва функцията va_start, на която се подава указател към променливата непосредствено преди макроса "...".

Връщани стойности

Връща дължината на изведения низ.

Примери

от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. #include <stdarg.h>
  3. void printError(char * format, ...)
  4. {
  5.   va_list args;
  6.   va_start(args, format);
  7.   vprintf(format, args);
  8.   va_end(args);
  9. }
  10. int main ()
  11. {
  12.    printError("Грешка: %s", "Това е тест!!!");
  13.    printError("Грешка %d проблем с %s", 2, "хардуера");
  14.    return 0;
  15. }

Бележки

va_list, va_start, va_end са дефинирани в stdarg.h.

Виж също

vfprintf - печата форматиран изход от списък с аргументи
vsprintf - печата форматиран изход от списък с аргументи