Què és snprintf() en C++

Que Es Snprintf En C



C++ és el llenguatge de programació d'ús comú que ofereix diversos avantatges als programadors. Inclou diverses funcions integrades que es podrien utilitzar per a molts propòsits. Entre aquestes funcions, hi ha una funció anomenada snprint() , que la gent gairebé no sap.

En aquest article, explicarem la sintaxi, els paràmetres, els valors de retorn i el funcionament de snprintf() funció en C++. Es pot trobar una comprensió completa snprintf() en aquesta guia.

Què és snprintf() en C++

En C++, snprintf() és una funció que s'utilitza per formatar o emmagatzemar una sèrie de valors de caràcters i cadenes escrits a la memòria intermèdia. Funciona de manera similar a sprintf() funció, però té la capacitat de superar els desbordaments de memòria intermèdia. El El fitxer de capçalera inclou el fitxer snprint() funció i s'ha de declarar si voleu utilitzar la funció al vostre programa. El snprintf() La funció especifica el contingut màxim que pot tenir el buffer.







A continuació es mostra la sintaxi a utilitzar snprintf() funció en C++:



snprintf ( char * buffer, mida_t buf_mida, const char * format,... ) ;

Un cop escrits els caràcters, s'insereix un caràcter nul final. Si MAX_BUFSIZE és zero, no s'emmagatzema res i la memòria intermèdia pot actuar com un punter nul.



Paràmetres de snprintf()

A continuació es mostren els paràmetres utilitzats snprintf() funció.





  • tampó : un punter a un buffer de cadena on s'escriurà la sortida.
  • buf_mida : MAX_BUFSIZE-1 és el nombre màxim de caràcters que es pot escriure a la memòria intermèdia.
  • format : s'ha escrit una cadena acabada en null en un flux de fitxers com a punter. Està format per caràcters i possibles especificadors de format que comencen per %. Els valors de les variables que segueixen una cadena de format substitueixen els especificadors de format.
  • (arguments addicionals) : Depenent del tipus de cadena de format, la funció podria esperar una llista d'arguments addicionals, tots contenint un valor que s'utilitza per substituir l'especificador de format en el format de la cadena (o, per a MAX_BUFSIZE, un punter a una ubicació d'emmagatzematge) .

Hi hauria d'haver un mínim de tants paràmetres com valors d'especificador de format. La funció ignora qualsevol argument addicional.

Què retorna snprintf().

Si la funció té èxit, retorna el nombre de caràcters que es considerarien escrits per a una memòria intermèdia adequadament gran, excloent un caràcter nul final. Quan falla, dóna un valor negatiu. La sortida es considerarà completament escrita si i només si un valor que es retorna no és negatiu i és més petit que MAX_BUFSIZE.



Com utilitzar snprintf() en C++

Aquí teniu un exemple d'ús de snprintf() en C++:

Exemple

#inclou
#inclou
utilitzant espai de noms std ;
int principal ( )
{
char buff_size [ 60 ] ;
int valor_retorn, MAX_BUFSIZE = 60 ;
char str [ ] = 'linux' ;
int articles = 45 ;
valor_retorn = snprintf ( buff_size, MAX_BUFSIZE, 'Hola %s usuaris, llegim %d articles sobre bash' ,str, articles ) ;
si ( valor_retorn > 0 && valor_retorn < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Nombre de caràcters escrits = ' << valor_retorn << endl ;
}
altra cosa
cout << 'Error escrivint a la memòria intermèdia' << endl ;
tornar 0 ;
}

Al codi anterior, establim la mida màxima de la memòria intermèdia en 60. Això significa que el codi acceptarà caràcters no superiors a 60. Hem utilitzat el snprintf() funció per produir una cadena que té 56 caràcters i es mostrarà al terminal de sortida. En cas que els caràcters introduïts siguin més de 60, el programa tindrà un error.

Conclusió

Hem demostrat el prototip, els paràmetres, els valors de retorn i el funcionament del C++ snprintf() funció que escriu una cadena formatada en una memòria intermèdia de cadena de caràcters. Vam descriure un exemple amb una comprensió completa snprintf() en aquesta guia.