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

La fonction sscanf () en C ++ est utilisée pour lire les données du tampon de chaîne.

prototype sscanf ()

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

La sscanf()fonction lit les données lit les données du tampon et stocke les valeurs dans les variables respectives.

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

Paramètres sscanf ()

  • buffer: Pointeur vers une chaîne de caractères terminée par un zéro à partir de laquelle lire les données.
  • format: Pointeur vers une chaîne de caractères terminée par un zéro qui spécifie comment lire l'entrée. Il se compose de spécificateurs de format commençant par%.

    La chaîne de format comprend les parties suivantes:

    • Non whitespace characterssauf% dont chacun consomme un caractère identique du flux d'entrée. Cela peut entraîner l'échec de la fonction si le caractère suivant du flux ne se compare pas.
    • Whitespace character: Tous les espaces blancs consécutifs sont traités comme des espaces blancs uniques. De plus, ' n', ' t' et '' sont considérés comme identiques.
    • Conversion specification: Il suit le format suivant:
      • Caractère% initial qui spécifie le début
      • Un caractère facultatif * appelé de suppression d'affectation. Si ce caractère est présent, fscanf () n'affecte le résultat à aucun argument de réception.
      • Un nombre entier positif facultatif qui spécifie la largeur maximale du champ. Il spécifie le nombre maximum de caractères que fscanf () est autorisé à consommer lors de la conversion spécifiée par la spécification de conversion actuelle.
      • Un modificateur de longueur facultatif spécifiant la taille de l'argument de réception.
      • Un spécificateur de format de conversion.
        Spécificateur de format La description
        % Correspond au% littéral
        c Correspond à un ou plusieurs caractères. Si la largeur est définie, correspond exactement aux caractères de largeur.
        s Correspond aux caractères non blancs consécutifs. Si la largeur est définie, correspond exactement aux caractères de largeur ou jusqu'à ce que le premier espace soit trouvé.
        (ensemble) Correspond à une séquence non vide de caractères du jeu de caractères donné. Si est présent au début de l'ensemble, alors tous les caractères qui ne sont pas dans l'ensemble sont mis en correspondance.
        Correspond à un entier décimal.
        je Correspond à un entier.
        o Correspond à un entier octal non signé.
        X ou x Correspond à un entier hexadécimal non signé.
        u Correspond à un entier décimal non signé.
        A ou a, E ou e, F ou f, G ou g Correspond à un nombre à virgule flottante.
        n Renvoie le nombre de caractères lus jusqu'à présent.
        p Correspond à 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: %(*)(width)(length)specifier
  • …: Autres arguments supplémentaires pour recevoir des données. Ils se produisent dans une séquence selon le spécificateur de format.

sscanf () Valeur de retour

  • En cas de succès, la sscanf()fonction renvoie le nombre d'arguments de réception attribués avec succès.
  • Si un échec de correspondance se produit avant l'attribution du premier argument de réception, renvoie zéro.
  • Si un échec d'entrée se produit avant l'attribution du premier argument de réception, EOF est renvoyé.

Exemple: fonctionnement de la fonction sscanf ()

 #include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )

Lorsque vous exécutez le programme, une sortie possible sera:

 Prénom: Dennis Nom: Ritchie

Articles intéressants...