C ++ sprintf () - Bibliothèque standard C ++

La fonction sprintf () en C ++ est utilisée pour écrire une chaîne formatée dans le tampon de chaîne de caractères.

prototype sprintf ()

 int sprintf (char * buffer, const char * format,…);

La sprintf()fonction écrit la chaîne pointée par format dans la mémoire tampon. Le format de chaîne peut contenir des spécificateurs de format commençant par% qui sont remplacés par les valeurs des variables qui sont passées à la sprintf()fonction en tant qu'arguments supplémentaires.

Il est défini dans le fichier d'en-tête.

Paramètres de sprintf ()

  • buffer: pointeur vers le buffer de chaîne pour écrire le résultat.
  • format: pointeur vers une chaîne terminée par null qui est écrite dans le flux de fichiers. Il se compose de caractères avec des spécificateurs de format facultatifs commençant par%.

    Les spécificateurs de format sont remplacés par les valeurs des variables respectives qui suivent la chaîne de format.

    Le spécificateur de format comprend les parties suivantes:

    • Un signe% en tête
    • Indicateurs: un ou plusieurs indicateurs facultatifs qui modifient le comportement de conversion.
      • -: Justifiez à gauche le résultat dans le champ. Par défaut, il est justifié à droite.
      • +: Le signe du résultat est attaché au début de la valeur, même pour les résultats positifs.
      • Espace: s'il n'y a pas de signe, un espace est attaché au début du résultat.
      • #: Une autre forme de conversion est effectuée.
      • 0: Il est utilisé pour les nombres entiers et flottants. Les zéros non significatifs sont utilisés pour compléter les nombres au lieu de l'espace.
    • Largeur: valeur facultative * ou entière utilisée pour spécifier le champ de largeur minimale.
    • Précision: un champ facultatif composé d'un. suivi de * ou entier ou rien pour spécifier la précision.
    • Longueur: un modificateur de longueur facultatif qui spécifie la taille de l'argument.
    • Spécificateur: spécificateur de format de conversion. Les spécificateurs de format disponibles sont les suivants:
      Spécificateur de format La description
      % Impressions%
      c Écrit un seul caractère
      s Écrit une chaîne de caractères
      d ou i Convertit un entier signé en représentation décimale
      o Convertit un entier non signé en représentation octale
      X ou x Convertit un entier non signé en représentation hexadécimale
      u Convertit un entier non signé en représentation décimale
      F ou f Convertit un nombre à virgule flottante en représentation décimale
      E ou e Convertit un nombre à virgule flottante en notation d'exposant décimal
      A ou a Convertit un nombre à virgule flottante en exposant hexadécimal
      G ou g Convertit un nombre à virgule flottante en notation d'exposant décimal ou décimal
      n Renvoie le nombre de caractères écrits jusqu'à présent par cet appel à la fonction. Le résultat est écrit sur la valeur pointée par l'argument
      p Écrit une séquence de caractères définie par l'implémentation définissant un pointeur.

      Ainsi, le format général du spécificateur de format est: %(flags)(width)(.precision)(length)specifier

  • …: Autres arguments supplémentaires spécifiant les données à imprimer. Ils se produisent dans une séquence selon le spécificateur de format.

sprintf () Valeur de retour

  • En cas de succès, la sprintf()fonction renvoie le nombre de caractères qui auraient été écrits pour un tampon suffisamment grand à l'exclusion du caractère nul de fin.
  • En cas d'échec, il renvoie une valeur négative.

Exemple: fonctionnement de la fonction sprintf ()

 #include #include using namespace std; int main() ( char buffer(100); int retVal; char name() = "Max"; int age = 23; retVal = sprintf(buffer, "Hi, I am %s and I am %d years old", name, age); cout << buffer << endl; cout << "Number of characters written = " << retVal << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 Bonjour, je suis Max et j'ai 23 ans Nombre de caractères écrits = 34

Articles intéressants...