Qu'est-ce que snprintf() en C++

Qu Est Ce Que Snprintf En C



C++ est le langage de programmation couramment utilisé qui offre plusieurs avantages aux programmeurs. Il comprend diverses fonctions intégrées qui pourraient être utilisées à de nombreuses fins. Parmi ces fonctions, il y a une fonction appelée snprint() , que les gens connaissent à peine.

Dans cet article, nous expliquerons la syntaxe, les paramètres, les valeurs de retour et le fonctionnement de snprintf() fonction en C++. On peut trouver une compréhension complète de snprintf() dans ce guide.

Qu'est-ce que snprintf() en C++

En C++, snprintf() est une fonction utilisée pour formater ou stocker une série de valeurs de caractères et de chaînes écrites dans le tampon. Cela fonctionne de la même manière que sprintf() fonction, mais il a la capacité de surmonter les débordements de tampon. Le le fichier d'en-tête inclut le snprint() fonction et elle doit être déclarée si vous souhaitez utiliser la fonction dans votre programme. Le snprintf() La fonction spécifie le contenu maximum que le tampon peut avoir.







Ci-dessous la syntaxe à utiliser snprintf() fonction en C++ :



snprintf ( carboniser * amortir, taille_t buf_size, constante carboniser * forme, ... ) ;

Une fois les caractères écrits, un caractère nul de fin est inséré. Si MAX_BUFSIZE vaut zéro, rien n'est stocké et le tampon peut agir comme un pointeur nul.



Paramètres de snprintf()

Voici les paramètres utilisés dans snprintf() fonction.





  • amortir : Un pointeur vers un tampon de chaîne où la sortie sera écrite.
  • buf_size : MAX_BUFSIZE-1 est le nombre maximum de caractères que l'on peut écrire dans le tampon.
  • format : une chaîne terminée par un caractère nul a été écrite dans un flux de fichier en tant que pointeur. Il est composé de caractères et d'éventuels spécificateurs de format commençant par %. Les valeurs des variables qui suivent une chaîne de format remplacent les spécificateurs de format.
  • (arguments supplémentaires) : Selon le type de chaîne de format, la fonction peut attendre une liste d'arguments supplémentaires, contenant tous une valeur utilisée pour remplacer le spécificateur de format dans le format de la chaîne (ou, pour MAX_BUFSIZE, un pointeur vers un emplacement de stockage) .

Il doit y avoir au minimum autant de paramètres de ce type qu'il y a de valeurs de spécificateur de format. La fonction ignore tout argument supplémentaire.

Qu'est-ce que snprintf() renvoie

Si la fonction réussit, elle renvoie le nombre de caractères qui seraient considérés comme écrits pour un tampon de taille appropriée, à l'exclusion d'un caractère nul de fin. En cas d'échec, il donne une valeur négative. La sortie sera considérée comme entièrement écrite si et seulement si une valeur renvoyée est non négative et inférieure à MAX_BUFSIZE.



Comment utiliser snprintf() en C++

Voici un exemple d'utilisation de snprintf() en C++ :

Exemple

#include
#include
en utilisant espace de noms std ;
entier principal ( )
{
carboniser buff_size [ 60 ] ;
entier return_Value, MAX_BUFSIZE = 60 ;
carboniser chaîne [ ] = 'Linux' ;
entier des articles = Quatre cinq ;
return_Value = snprintf ( buff_size, MAX_BUFSIZE, 'Bonjour %s utilisateurs, lisons %d articles sur bash' ,str, articles ) ;
si ( return_Value > 0 && return_Value < MAX_BUFSIZE )
{
écoute << buff_size << fin ;
écoute << 'Nombre de caractères écrits = ' << return_Value << fin ;
}
autre
écoute << 'Erreur d'écriture dans le tampon' << fin ;
retour 0 ;
}

Dans le code ci-dessus, nous avons défini la taille maximale du tampon sur 60. Cela signifie que le code n'acceptera pas plus de 60 caractères. Nous avons utilisé le snprintf() pour produire une chaîne de 56 caractères et elle sera affichée sur le terminal de sortie. Si vos caractères saisis sont supérieurs à 60, le programme passera par une erreur.

Conclusion

Nous avons démontré le prototype, les paramètres, les valeurs de retour et le fonctionnement du C++ snprintf() fonction qui écrit une chaîne formatée dans un buffer de chaînes de caractères. Nous avons décrit un exemple avec une compréhension complète de snprintf() dans ce guide.