Ano ang snprintf() sa C++

Ano Ang Snprintf Sa C



Ang C++ ay ang karaniwang ginagamit na programming language na nag-aalok ng ilang mga pakinabang sa mga programmer. Kabilang dito ang iba't ibang mga built-in na function na maaaring magamit para sa maraming layunin. Kabilang sa mga function na iyon, mayroong isang function na tinatawag snprint() , na halos hindi alam ng mga tao.

Sa artikulong ito, ipapaliwanag namin ang syntax, mga parameter, mga halaga ng pagbabalik at paggana ng snprintf() function sa C++. Ang isang tao ay makakahanap ng kumpletong pag-unawa sa snprintf() sa gabay na ito.

Ano ang snprintf() sa C++

Sa C++, snprintf() ay isang function na ginagamit upang i-format o iimbak ang isang serye ng mga halaga ng character at string na nakasulat sa buffer. Ito ay gumagana katulad ng sprintf() function ngunit ito ay may kakayahan upang pagtagumpayan buffer overflows. Ang Kasama sa header file ang snprint() function at dapat itong ideklara kung gusto mong gamitin ang function sa iyong program. Ang snprintf() function na tumutukoy sa maximum na nilalaman na maaaring magkaroon ng buffer.







Ang ibinigay sa ibaba ay ang syntax na gagamitin snprintf() function sa C++:



snprintf ( char * buffer, laki_t buf_size, const char * format,... ) ;

Kapag naisulat na ang mga character, isang ending null na character ang ipinapasok. Kung ang MAX_BUFSIZE ay zero, walang maiimbak at ang buffer ay maaaring kumilos bilang null pointer.



Mga parameter ng snprintf()

Ang mga sumusunod ay ang mga parameter na ginamit sa snprintf() function.





  • buffer : Isang pointer sa isang string buffer kung saan isusulat ang output.
  • buf_size : MAX_BUFSIZE-1 ay ang maximum na bilang ng mga character na maaaring isulat ng isa sa buffer.
  • pormat : Ang isang null-terminated string ay naisulat sa isang file stream bilang isang pointer. Binubuo ito ng mga character at posibleng mga specifier ng format na nagsisimula sa %. Ang mga halaga ng mga variable na sumusunod sa isang string ng format ay pinapalitan ang mga tagatukoy ng format.
  • (karagdagang mga argumento) : Depende sa uri ng string ng format, maaaring asahan ng function ang isang listahan ng mga karagdagang argumento, lahat ay naglalaman ng value na ginagamit upang palitan ang format specifier sa format ng string (o, para sa MAX_BUFSIZE, isang pointer sa isang lokasyon ng storage) .

Dapat mayroong isang minimum na kasing dami ng mga naturang parameter na may mga halaga ng specifier ng format. Binabalewala ng function ang anumang karagdagang argumento.

Ano ang Ibinabalik ng snprintf().

Kung matagumpay ang function, ibinabalik nito ang bilang ng mga character na maituturing na nakasulat para sa isang naaangkop na malaking buffer, hindi kasama ang isang pagwawakas na null character. Kapag nabigo ito, magbubunga ito ng negatibong halaga. Ang output ay ituturing na ganap na nakasulat kung at kung ang isang halaga na ibinalik ay hindi negatibo at mas maliit sa MAX_BUFSIZE.



Paano Gamitin ang snprintf() sa C++

Narito ang isang halimbawa ng paggamit ng snprintf() sa C++:

Halimbawa

#include
#include
gamit namespace std ;
int pangunahing ( )
{
char buff_size [ 60 ] ;
int return_Value, MAX_BUFSIZE = 60 ;
char str [ ] = 'linux' ;
int mga artikulo = Apat. Lima ;
return_Value = snprintf ( buff_size, MAX_BUFSIZE, 'Hello %s Users, basahin natin ang %d articles about bash' ,str, mga artikulo ) ;
kung ( return_Value > 0 && return_Value < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Bilang ng mga character na nakasulat = ' << return_Value << endl ;
}
iba pa
cout << 'Error sa pagsulat sa buffer' << endl ;
bumalik 0 ;
}

Sa code sa itaas, itinakda namin ang max na laki ng buffer sa 60. Ibig sabihin, tatanggap ang code ng mga character na hindi hihigit sa 60. Ginamit namin ang snprintf() function na mag-output ng string na may 56 na character at ito ay ipapakita sa output terminal. Kung ang iyong ipinasok na mga character ay higit sa 60, ang programa ay sa pamamagitan ng isang error.

Konklusyon

Naipakita namin ang prototype, parameter, return value, at gumagana ng C++ snprintf() function na nagsusulat ng na-format na string sa isang character string buffer. Inilarawan namin ang isang halimbawa na may kumpletong pag-unawa sa snprintf() sa gabay na ito.