Mi az snprintf() a C++-ban

Mi Az Snprintf A C Ban



A C++ az általánosan használt programozási nyelv, amely számos előnnyel jár a programozóknak. Különféle beépített funkciókat tartalmaz, amelyek sokféle célra használhatók. Ezen függvények között van egy ún snprint() , amit az emberek aligha ismernek.

Ebben a cikkben elmagyarázzuk a szintaxist, a paramétereket, a visszatérési értékeket és a működését snprintf() függvény C++ nyelven. Az ember megtalálhatja a teljes megértést snprintf() ebben az útmutatóban.

Mi az snprintf() a C++-ban

C++ nyelven, snprintf() A pufferbe írt karakter- és karakterlánc-értékek sorozatának formázására vagy tárolására szolgáló függvény. Hasonlóan működik, mint sprintf() funkciót, de képes legyőzni a puffer túlcsordulást. A fejlécfájl tartalmazza a snprint() függvényt, és ezt deklarálni kell, ha használni kívánja a függvényt a programjában. A snprintf() függvény határozza meg a puffer maximális tartalmát.







Az alábbiakban megadjuk a használandó szintaxist snprintf() függvény C++ nyelven:



snprintf ( char * puffer, size_t buf_size, const char * formátum,... ) ;

A karakterek beírása után egy befejező null karakter kerül beillesztésre. Ha a MAX_BUFSIZE nulla, akkor semmi sem kerül tárolásra, és a puffer nullmutatóként működhet.



Az snprintf() paraméterei

Az alábbiakban a használt paraméterek találhatók snprintf() funkció.





  • puffer : Egy mutató egy karakterlánc-pufferre, ahová a kimenet íródik.
  • buf_size : MAX_BUFSIZE-1 a pufferbe írható karakterek maximális száma.
  • formátum : Egy null-végződésű karakterláncot írtunk egy fájlfolyamba mutatóként. Karakterekből és lehetséges formátum-meghatározókból áll, amelyek %-kal kezdődnek. A formátum-karakterláncot követő változók értékei helyettesítik a formátum-leírókat.
  • (további érvek) : A formátumkarakterlánc típusától függően a függvény további argumentumok listáját várhatja, amelyek mindegyike olyan értéket tartalmaz, amely a karakterlánc formátumában a formátumspecifikátor helyettesítésére szolgál (vagy MAX_BUFSIZE esetén egy tárolóhelyre mutató mutató) .

Minimum annyi ilyen paraméternek kell lennie, ahány formátumspecifikációs érték van. A függvény figyelmen kívül hagy minden további argumentumot.

Mit ad vissza az snprintf()?

Ha a függvény sikeres, akkor azt a karakterszámot adja vissza, amelyet egy megfelelően nagy pufferhez írtnak tekintenek, kivéve a lezáró null karaktert. Ha meghiúsul, negatív értéket ad. A kimenet akkor és csak akkor tekinthető teljesen megírtnak, ha a visszaadott érték nemnegatív, és kisebb, mint MAX_BUFSIZE.



Az snprintf() használata C++-ban

Íme egy példa az snprintf() használatára C++-ban:

Példa

#include
#include
segítségével névtér std ;
int fő- ( )
{
char buff_size [ 60 ] ;
int return_Value, MAX_BUFSIZE = 60 ;
char str [ ] = 'linux' ;
int cikkeket = Négy öt ;
return_Value = snprintf ( buff_size, MAX_BUFSIZE, 'Kedves %s felhasználó, olvassunk el %d cikket a bash-ról' ,str, cikkek ) ;
ha ( return_Value > 0 && return_Value < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Beírt karakterek száma = ' << return_Value << endl ;
}
más
cout << 'Hiba a pufferbe írásakor' << endl ;
Visszatérés 0 ;
}

A fenti kódban a puffer maximális méretét 60-ra állítottuk. Ez azt jelenti, hogy a kód legfeljebb 60 karaktert fogad el. snprintf() függvény egy 56 karakterből álló karakterláncot ad ki, és ez megjelenik a kimeneti terminálon. Ha a beírt karakterek száma meghaladja a 60-at, a program hibát jelez.

Következtetés

Bemutattuk a C++ prototípusát, paramétereit, visszatérési értékeit és működését snprintf() függvény, amely formázott karakterláncot ír egy karakterlánc-pufferbe. Leírtunk egy példát a teljes megértéssel snprintf() ebben az útmutatóban.