std::snprintf
Megjelenés
Főnév
std::snprintf (tsz. std::snprintfs)
- (informatika) A
std::snprintfegy C++-ban (és C-ben) használt függvény, amely formázott szöveget ír egy karaktertömbbe, miközben biztosítja, hogy a tömb ne lépje túl a megadott méretet. Ez hasznos lehet például biztonságos string formázásra, hogy elkerüljük a buffer túlcsordulását.
Szintaxis:
#include <cstdio>
int snprintf(char* str, std::size_t size, const char* format, ...);
Paraméterek:
str: A célkaraktertömb, ahová az eredmény kerül.size: Astrtömb mérete (beleértve a nullterminátort).format: A formázási sztring (hasonló aprintf-hez)....: A formázási karakterekhez tartozó változó számú paraméterek.
Visszatérési érték:
- Ha a teljes kimenet kisebb, mint
size, akkor a kiírt karakterek száma (a nullterminátor nélkül). - Ha a teljes kimenet hosszabb, mint
size, akkor az írandó karakterek teljes száma (azaz jelzi, hogy a tömb nem volt elég nagy).
Példa:
#include <cstdio>
#include <iostream>
int main() {
char buffer[20];
int n = std::snprintf(buffer, sizeof(buffer), "Szám: %d", 42);
std::cout << "Buffer tartalma: " << buffer << std::endl;
std::cout << "Karakterek száma: " << n << std::endl;
return 0;
}
Fontos tudnivalók:
- Ha a buffer nem elég nagy, az adatok csonkítva lesznek, de a teljes kiírandó méretet visszaadja a függvény.
- Ha
sizeértéke 0, akkor asnprintfnem ír semmit a bufferbe, de kiszámítja és visszaadja a teljes formázott szöveg hosszát. - Biztonságosabb alternatíva lehet a
std::stringstreamhasználata modern C++-ban.
- std::snprintf - Szótár.net (en-hu)
- std::snprintf - Sztaki (en-hu)
- std::snprintf - Merriam–Webster
- std::snprintf - Cambridge
- std::snprintf - WordNet
- std::snprintf - Яндекс (en-ru)
- std::snprintf - Google (en-hu)
- std::snprintf - Wikidata
- std::snprintf - Wikipédia (angol)