Hva er snprintf i C ++

Hva er snprintf i C ++
C ++ er det ofte brukte programmeringsspråket som gir flere fordeler for programmerere. Det inkluderer forskjellige innebygde funksjoner som kan brukes til de mange formålene. Blant disse funksjonene er det en funksjon som heter snprint (), Hvilke folk knapt kjenner.

I denne artikkelen vil vi forklare syntaks, parametere, returverdier og arbeid av snPrintf () funksjon i c++. Man kan finne en fullstendig forståelse av snPrintf () I denne guiden.

Hva er snprintf () i c++

I c++, snPrintf () er en funksjon som brukes til å formatere eller lagre en serie karakter- og strengverdier skrevet til bufferen. Det fungerer på samme måte som Sprintf () funksjon, men den har muligheten til å overvinne overløp av buffer. De overskriftsfil inkluderer snprint () funksjon og det må erklæres hvis du vil bruke funksjonen i programmet ditt. De snPrintf () Funksjon spesifiserer det maksimale innholdet som bufferen kan ha.

Det gitt nedenfor er syntaksen som skal brukes snPrintf () Funksjon i C ++:

snprintf (char* buffer, størrelse_t buf_size, const char* format, ...);

Når karakterene er skrevet, settes en slutt nullkarakter. Hvis max_bufSize er null, lagres ingenting og bufferen kan fungere som en nullpeker.

Parametere av snPrintf ()

Følgende er parametrene som brukes i snPrintf () funksjon.

  • buffer: En peker til en strengbuffer der utgangen vil bli skrevet.
  • BUF_SIZE: Max_bufsize-1 er det maksimale antallet tegn som man kan skrive til bufferen.
  • format: En null-terminert streng er skrevet til en filstrøm som peker. Det består av tegn og mulige formatspesifikasjoner som begynner med %. Verdiene til variablene som følger en formatstreng erstatter formatspesifikasjonene.
  • (tilleggsargumenter): Avhengig av typen formatstreng, kan funksjonen forvente en liste over flere argumenter, alt som inneholder en verdi som brukes til å erstatte formatspesifikasjonen i formatet til strengen (eller, for max_bufSize, en peker til et lagringssted).

Det skal være minimum så mange slike parametere som det er formatspesifikatorverdier. Funksjonen ignorerer ethvert tilleggsargument.

Hva kommer snPrintf () tilbake

Hvis funksjonen er vellykket, returnerer den antall tegn som vil bli ansett som skrevet for en passende stor buffer, unntatt en avsluttende nullkarakter. Når den mislykkes, gir det en negativ verdi. Utgangen vil bli ansett som fullstendig skrevet hvis og bare hvis en verdi som returneres er ikke -negativ og er mindre enn max_bufSize.

Hvordan du bruker snprintf () i c++

Her er et eksempel på å bruke snprintf () i C ++:

Eksempel

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

char buff_size [60];
int return_value, max_bufSize = 60;
char str [] = "linuxhint";
int -artikler = 45;
return_value = snprintf (buff_size, max_bufsize, "hallo %s brukere, la oss lese %d artikler om bash", str, artikler);
if (return_value> 0 && return_value < MAX_BUFSIZE)

cout << buff_size << endl;
cout << "Number of characters written = " << return_Value << endl;

ellers
cout << "Error writing to buffer" << endl;
retur 0;

I koden ovenfor setter vi maksimal størrelsen på bufferen til 60. Det betyr at koden vil godta tegn ikke mer enn 60. Vi har brukt snPrintf () Funksjon for å sende ut en streng som har 56 tegn, og den vises på utgangsterminalen. I tilfelle de angitte tegnene er mer enn 60, vil programmet gjennom en feil.

Konklusjon

Vi har demonstrert prototypen, parametere, returverdier og arbeid av C++ snPrintf () funksjon som skriver en formatert streng til en tegnstrengbuffer. Vi beskrev et eksempel med en fullstendig forståelse av snPrintf () I denne guiden.