Cos'è SnPrintf in C ++

Cos'è SnPrintf in C ++
C ++ è il linguaggio di programmazione comunemente usato che offre diversi vantaggi ai programmatori. Include varie funzioni integrate che potrebbero essere utilizzate per molti scopi. Tra queste funzioni, c'è una funzione chiamata snprint (), che le persone difficilmente conoscono.

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.

  • respingente: Un puntatore a un buffer di stringa in cui verrà scritto l'output.
  • buf_size: Max_bufsize-1 è il conteggio massimo dei caratteri che si possono scrivere al buffer.
  • formato: Una stringa con terminazione null è stata scritta su un flusso di file come puntatore. È composto da personaggi e possibili specificatori di formato che iniziano con %. I valori delle variabili che seguono una stringa di formato sostituiscono gli specificatori del formato.
  • (Argomenti aggiuntivi): A seconda del tipo di stringa di formato, la funzione potrebbe aspettarsi un elenco di argomenti aggiuntivi, tutti contenenti un valore utilizzato per sostituire lo specificatore del formato nel formato della stringa (o, per Max_Bufsize, un puntatore a una posizione di archiviazione).

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.