C ++ sscanf () - Biblioteca standard C ++

Funcția sscanf () din C ++ este utilizată pentru a citi datele din buffer-ul șirului.

sscanf () prototip

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

sscanf()Funcția citește datele citește datele din buffer și stochează valorile în variabilele respective.

Este definit în fișierul antet.

sscanf () Parametri

  • buffer: Pointer către un șir de caractere terminat nul pentru a citi datele din.
  • format: Pointer către un șir de caractere terminat nul care specifică modul de citire a intrării. Se compune din specificatori de format care încep cu%.

    Șirul de format are următoarele părți:

    • Non whitespace characterscu excepția% din care fiecare consumă un caracter identic din fluxul de intrare. Poate provoca eșecul funcției dacă următorul caracter din flux nu compară egal.
    • Whitespace character: Toate caracterele consecutive ale spațiului alb sunt tratate ca un singur caracter al spațiului alb. Mai mult, ' n', ' t' și '' sunt considerate aceleași.
    • Conversion specification: Urmează următorul format:
      • % Caracter inițial care specifică începutul
      • Un caracter opțional * numit caracter de suprimare a atribuirilor. Dacă acest caracter este prezent, fscanf () nu atribuie rezultatul niciunui argument primitor.
      • Un număr întreg pozitiv opțional care specifică lățimea maximă a câmpului. Specifică numărul maxim de caractere pe care fscanf () i se permite să le consume atunci când efectuează conversia specificată de specificația curentă de conversie.
      • Un modificator opțional de lungime care specifică dimensiunea argumentului de primire.
      • Un specificator de format de conversie.
        Specificator de format Descriere
        % Se potrivește cu% literal
        c Potriveste un singur caracter sau mai multe caractere. Dacă lățimea este definită, se potrivește exact cu caractere de lățime.
        s Potrivește caractere consecutive fără spațiu alb. Dacă lățimea este definită, se potrivește exact cu lățimea caracterelor sau până când se găsește primul spațiu alb.
        (a stabilit) Potrivește o secvență de caractere ne goală din setul de caractere dat. Dacă este prezent la începutul setului, atunci toate caracterele care nu sunt în set sunt potrivite.
        d Se potrivește cu un număr întreg zecimal.
        eu Se potrivește cu un număr întreg.
        o Se potrivește cu un întreg octal nesemnat.
        X sau x Se potrivește cu un număr întreg hexazecimal nesemnat.
        tu Se potrivește cu un număr zecimal nesemnat.
        A sau a, E sau e, F sau f, G sau g Se potrivește cu un număr în virgulă mobilă.
        n Returnează numărul de caractere citite până acum.
        p Se potrivește cu o secvență de caractere definită de implementare care definește un pointer.
    Deci, formatul general al specificatorului de format este: %(*)(width)(length)specifier
  • …: Alte argumente suplimentare pentru primirea datelor. Acestea apar într-o secvență conform specificatorului de format.

sscanf () Valoare returnată

  • Dacă are succes, sscanf()funcția returnează numărul de argumente primite atribuite cu succes.
  • Dacă apare o eroare de potrivire înainte ca primul argument de primire să fie atribuit, returnează zero.
  • Dacă eșecul de intrare apare înainte ca primul argument de primire să fie atribuit, EOF este returnat.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, o posibilă ieșire va fi:

 Prenume: Dennis Nume: Ritchie

Articole interesante...