Функција вснпринтф () у језику Ц ++ користи се за писање форматираног низа у међуспремник низа.
За разлику од вспринтф (), максималан број знакова који се могу уписати у бафер наведен је у vsnprintf().
прототип вснпринтф ()
инт вснпринтф (цхар * буффер, сизе_т буф_сизе, цонст цхар * формат, ва_лист влист);
vsnprintf()Функција пише низ показао да је формат на бафер низ карактера. Максималан број знакова који се може написати је буф_сизе. Након писања знакова додаје се завршни нулл знак. Ако је буф_сизе једнак нули, ништа се не записује, а бафер може бити нулти показивач.
Формат низа може садржати спецификаторе формата који почињу са% који су замењени вредностима променљивих које се прослеђују као листа влист.
Дефинисано је у заглављу датотеке.
вснпринтф () Параметри
- бафер: показивач на низ знакова за писање резултата.
 - буф_сизе: Максималан број знакова за писање.
 - формат: показивач на низ који се завршава нулом и записује се у ток датотеке. Састоји се од знакова, заједно са опционим спецификаторима формата који почињу са%.
Спецификатори формата замењују се вредностима одговарајућих променљивих које следе низ формата.
Спецификатор формата има следеће делове:
- Водећи знак%
 - Заставе: Опционално једна или више заставица које мењају понашање конверзије.
- -: Лево оправдајте резултат у пољу. Подразумевано је исправно оправдано.
 - +: Знак резултата је везан за почетак вредности, чак и за позитивне резултате.
 - Размак: Ако нема знака, размак се додаје на почетак резултата.
 - #: Изводи се алтернативни облик конверзије.
 - 0: Користи се за цео број и број са покретном тачком. Водеће нуле се користе за попуњавање бројева уместо размака.
 
 - Ширина: Опционална * или целобројна вредност која се користи за одређивање поља минималне ширине.
 - Прецизност: Опционо поље које се састоји од а. након чега следи * или цео број или ништа за прецизирање.
 - Дужина: Опционални модификатор дужине који одређује величину аргумента.
 - Спецификатор: Спецификатор формата конверзије. Доступни спецификатори формата су следећи: 
Спецификатор формата Опис % Принтс% ц Писе један лик с Записује низ знакова д или и Претвара потписани цели број у децимални приказ о Претвара непотписани цели број у осмински приказ Кс или к Претвара непотписани цели број у хексадецимални приказ у Претвара непотписани цијели број у децимални приказ Ф или ф Претвара број са покретном зарезом у децимални приказ Е или е Претвара број с помичном зарезом у запис децималног експонента А или а Претвара број са покретном зарезом у хексадецимални експонент Г или г. Претвара број с помичном зарезом у децимални или децимални запис експонента н Враћа број знакова до сада написаних овим позивом функцији. Резултат се записује у вредност на коју указује аргумент стр Пише секвенцу карактера дефинисану имплементацијом која дефинише показивач. Дакле, општи формат спецификатора формата је:
%(flags)(width)(.precision)(length)specifier 
 - влист: Листа аргумената који садрже податке за писање.
 
вснпринтф () Повратна вредност
- Ако успе, 
vsnprintf()функција враћа број написаних знакова. - У случају квара враћа негативну вредност.
 - Када је дужина форматираног низа већа од буф_сизе, треба га скратити. У таквим случајевима 
vsnprintf()функција враћа укупан број знакова изузимајући завршавајући нулл знак који би био написан да није наметнуто ограничење буф_сизе. 
Пример: Како функционише функција вснпринтф ()
 #include #include void write(char* buf, int buf_size, const char *fmt,… ) ( va_list args; va_start(args, fmt); vsnprintf(buf, buf_size, fmt, args); va_end(args); ) int main () ( char buffer(100); char fname(20) = "Bjarne"; char lname(20) = "Stroustrup"; char lang(5) = "C++"; write(buffer, 27, "%s was created by %s %s", lang, fname, lname); printf("%s", buffer); return 0; )
Када покренете програм, излаз ће бити:
Ц ++ је креирао Бјарне








