Kas ir snprintf () programmā C++

Kas Ir Snprintf Programma C



C++ ir plaši izmantotā programmēšanas valoda, kas programmētājiem piedāvā vairākas priekšrocības. Tas ietver dažādas iebūvētas funkcijas, kuras var izmantot daudziem mērķiem. Starp šīm funkcijām ir funkcija, ko sauc snprint () , ko cilvēki gandrīz nezina.

Šajā rakstā mēs izskaidrosim sintaksi, parametrus, atgriešanas vērtības un darbību snprintf() funkcija C++. Var atrast pilnīgu izpratni par snprintf() šajā rokasgrāmatā.

Kas ir snprintf () programmā C++

C++ valodā, snprintf() ir funkcija, ko izmanto, lai formatētu vai saglabātu buferī ierakstītu rakstzīmju un virkņu vērtību sēriju. Tas darbojas līdzīgi kā sprintf() funkcija, bet tai ir iespēja pārvarēt bufera pārpildes. The galvenes fails ietver snprint () funkcija un tā ir jādeklarē, ja vēlaties izmantot funkciju savā programmā. The snprintf() funkcija norāda maksimālo saturu, kāds var būt buferim.







Tālāk ir norādīta izmantojamā sintakse snprintf() funkcija C++ valodā:



snprintf ( char * buferis, izmērs_t buf_size, konst char * formāts,... ) ;

Kad rakstzīmes ir uzrakstītas, tiek ievietota beigu nulles rakstzīme. Ja MAX_BUFSIZE ir nulle, nekas netiek saglabāts un buferis var darboties kā nulles rādītājs.



snprintf() parametri

Šeit ir izmantotie parametri snprintf() funkciju.





  • buferis : rādītājs uz virknes buferi, kurā tiks ierakstīta izvade.
  • buf_size : MAX_BUFSIZE-1 ir maksimālais rakstzīmju skaits, ko var ierakstīt buferī.
  • formātā : faila straumē kā rādītājs ir ierakstīta virkne ar nulli. To veido rakstzīmes un iespējamie formāta specifikācijas, kas sākas ar %. To mainīgo vērtības, kas seko formāta virknei, aizstāj formāta specifikācijas.
  • (papildu argumenti) : atkarībā no formāta virknes veida funkcija var sagaidīt papildu argumentu sarakstu, kuros visos ir ietverta vērtība, kas tiek izmantota, lai aizstātu formāta norādītāju virknes formātā (vai, ja MAX_BUFSIZE, rādītājs uz krātuves vietu). .

Šādu parametru ir jābūt vismaz tik daudz, cik formāta specifikācijas vērtību. Funkcija ignorē visus papildu argumentus.

Ko atgriež snprintf()

Ja funkcija ir veiksmīga, tā atgriež rakstzīmju skaitu, kas tiktu uzskatīts par ierakstītu atbilstoši lielam buferim, izņemot beigu nulles rakstzīmi. Ja tas neizdodas, tas dod negatīvu vērtību. Izvade tiks uzskatīta par pilnībā ierakstītu tad un tikai tad, ja atgrieztā vērtība nav negatīva un ir mazāka par MAX_BUFSIZE.



Kā lietot snprintf() programmā C++

Šeit ir piemērs snprintf () izmantošanai programmā C++:

Piemērs

#include
#include
izmantojot nosaukumvieta std ;
starpt galvenais ( )
{
char buff_size [ 60 ] ;
starpt return_Value, MAX_BUFSIZE = 60 ;
char str [ ] = 'linux' ;
starpt rakstus = Četri, pieci ;
atgriešanās_vērtība = snprintf ( buff_size, MAX_BUFSIZE, 'Sveiki %s lietotāji, lasīsim %d rakstus par bash' ,str, raksti ) ;
ja ( atgriešanās_vērtība > 0 && atgriešanās_vērtība < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Uzrakstīto rakstzīmju skaits =' << atgriešanās_vērtība << endl ;
}
cits
cout << 'Kļūda, rakstot buferī' << endl ;
atgriezties 0 ;
}

Iepriekš minētajā kodā mēs iestatījām maksimālo bufera lielumu uz 60. Tas nozīmē, ka kods pieņems rakstzīmes, kas nepārsniedz 60. Mēs esam izmantojuši snprintf() funkcija, lai izvadītu virkni, kurā ir 56 rakstzīmes, un tā tiks parādīta izvades terminālī. Ja ievadītās rakstzīmes ir vairāk nekā 60, programma radīs kļūdu.

Secinājums

Mēs esam parādījuši C++ prototipu, parametrus, atgriešanas vērtības un darbību snprintf() funkcija, kas raksta formatētu virkni rakstzīmju virknes buferī. Mēs aprakstījām piemēru ar pilnīgu izpratni par snprintf() šajā rokasgrāmatā.