Шта је снпринтф() у Ц++-у

Sta Je Snprintf U C U



Ц++ је најчешће коришћени програмски језик који нуди неколико предности програмерима. Укључује различите уграђене функције које се могу користити у многе сврхе. Међу тим функцијама постоји функција тзв снпринт() , што људи једва знају.

У овом чланку ћемо објаснити синтаксу, параметре, повратне вредности и рад снпринтф() функција у Ц++. Може се наћи потпуно разумевање снпринтф() у овом водичу.

Шта је снпринтф() у Ц++-у

У Ц++, снпринтф() је функција која се користи за форматирање или чување низа вредности знакова и стрингова уписаних у бафер. Ради слично као спринтф() функцију, али има способност да превазиђе преливање бафера. Тхе <цстдио> датотека заглавља укључује снпринт() функцију и она мора бити декларисана ако желите да користите функцију у свом програму. Тхе снпринтф() функција специфицира максималан садржај који бафер може имати.







Доле дата је синтакса коју треба користити снпринтф() функција у Ц++:



снпринтф ( цхар * тампон, сизе_т буф_сизе, конст цхар * формат, ... ) ;

Када су знакови написани, умеће се завршни нулти знак. Ако је МАКС_БУФСИЗЕ нула, ништа се не чува и бафер може да делује као нулти показивач.



Параметри снпринтф()

Следе параметри који се користе у снпринтф() функција.





  • тампон : Показивач на бафер стрингова у који ће бити уписан излаз.
  • буф_сизе : МАКС_БУФСИЗЕ-1 је максимални број знакова које се може уписати у бафер.
  • формату : Стринг са нултом завршетком је уписан у ток датотеке као показивач. Састоји се од знакова и могућих спецификација формата који почињу са %. Вредности променљивих које прате низ формата замењују спецификације формата.
  • (додатни аргументи) : У зависности од типа стринга формата, функција може очекивати листу додатних аргумената, од којих сви садрже вредност која се користи да замени спецификацију формата у формату стринга (или, за МАКС_БУФСИЗЕ, показивач на локацију за складиштење) .

Требало би да постоји најмање онолико таквих параметара колико има вредности спецификација формата. Функција игнорише све додатне аргументе.

Шта снпринтф() враћа

Ако је функција успешна, она враћа број знакова који би се сматрали написаним за одговарајуће велики бафер, искључујући завршни нул карактер. Када не успе, даје негативну вредност. Излаз ће се сматрати потпуно написаним ако и само ако је враћена вредност ненегативна и мања је од МАКС_БУФСИЗЕ.



Како користити снпринтф() у Ц++

Ево примера коришћења снпринтф() у Ц++:

Пример

#инцлуде <цстдио>
#инцлуде <иостреам>
Користећи именског простора стд ;
инт главни ( )
{
цхар буфф_сизе [ 60 ] ;
инт ретурн_Валуе, МАКС_БУФСИЗЕ = 60 ;
цхар стр [ ] = 'линукс' ;
инт чланци = Четири, пет ;
ретурн_Валуе = снпринтф ( буфф_сизе, МАКС_БУФСИЗЕ, „Здраво %с корисници, хајде да прочитамо %д чланака о басх-у“ ,стр, чланци ) ;
ако ( ретурн_Валуе > 0 && ретурн_Валуе < МАКС_БУФСИЗЕ )
{
цоут << буфф_сизе << ендл ;
цоут << 'Број написаних знакова = ' << ретурн_Валуе << ендл ;
}
друго
цоут << „Грешка при писању у бафер“ << ендл ;
повратак 0 ;
}

У горњем коду, поставили смо максималну величину бафера на 60. То значи да ће код прихватити знакове не више од 60. Користили смо снпринтф() функција за излаз низа који има 56 карактера и биће приказан на излазном терминалу. У случају да је унесених знакова више од 60, програм ће доћи до грешке.

Закључак

Демонстрирали смо прототип, параметре, повратне вредности и рад Ц++-а снпринтф() функција која уписује форматирани стринг у бафер низа знакова. Описали смо пример са потпуним разумевањем снпринтф() у овом водичу.