In questo articolo spiegheremo la sintassi, i parametri, i valori di ritorno e il funzionamento di snprintf () funzione in c++. Si può trovare una comprensione completa di snprintf () In questa guida.
Cos'è snprintf () in c++
In c++, snprintf () è una funzione utilizzata per formattare o archiviare una serie di valori di carattere e stringa scritti al buffer. Funziona in modo simile a sprintf () funzione ma ha la capacità di superare gli overflow buffer. IL Il file di intestazione include il snprint () funzione e deve essere dichiarato se si desidera utilizzare la funzione nel programma. IL snprintf () La funzione specifica il contenuto massimo che il buffer potrebbe avere.
Il dato di seguito è la sintassi da utilizzare snprintf () funzione in c ++:
snprintf (char* buffer, size_t buf_size, const char* formato,…);
Una volta che i personaggi sono stati scritti, viene inserito un carattere null finale. Se Max_Bufsize è zero, nulla viene archiviato e il buffer può fungere da punta nullo.
Parametri di snprintf ()
Di seguito sono riportati i parametri utilizzati in snprintf () funzione.
Dovrebbe esserci un minimo di tanti di questi parametri quanti sono i valori di specificatore di formato. La funzione ignora qualsiasi argomento aggiuntivo.
Cosa ritorna snprintf ()
Se la funzione ha esito positivo, restituisce il numero di caratteri che verrebbero considerati scritti per un buffer adeguatamente grande, escludendo un carattere null terminato. Quando fallisce, produce un valore negativo. L'output verrà considerato completamente scritto se e solo se un valore che viene restituito è non negativo ed è inferiore a Max_Bufsize.
Come usare snprintf () in c++
Ecco un esempio di utilizzo di snprintf () in C ++:
Esempio
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
char buff_size [60];
int return_value, max_bufsize = 60;
char str [] = "linuxhint";
Int articoli = 45;
return_value = snprintf (buff_size, max_bufsize, "ciao %s utenti, leggiamo %d articoli su bash", str, articoli);
if (return_value> 0 && return_value < MAX_BUFSIZE)
cout << buff_size << endl;
cout << "Number of characters written = " << return_Value << endl;
altro
cout << "Error writing to buffer" << endl;
restituzione 0;
Nel codice sopra, impostiamo la dimensione massima del buffer su 60. Significa che il codice accetterà caratteri non più di 60. Abbiamo usato il snprintf () Funzione per emettere una stringa che ha 56 caratteri e verrà visualizzata nel terminale di uscita. Nel caso in cui i caratteri inseriti siano più di 60, il programma sarà attraverso un errore.
Conclusione
Abbiamo dimostrato il prototipo, i parametri, i valori di restituzione e il funzionamento del C++ snprintf () funzione che scrive una stringa formattata in un buffer di stringa di caratteri. Abbiamo descritto un esempio con una completa comprensione di snprintf () In questa guida.