C ++ sscanf () - C ++ standardraamatukogu

Funktsiooni sscanf () C ++ -s kasutatakse andmete lugemiseks stringipuhvrist.

sscanf () prototüüp

 int sscanf (const char * puhver, const char * formaat,…);

sscanf()Funktsiooni loeb andmeid loeb andmeid puhvrist ja salvestab väärtusi vastavatesse muutujaid.

See on määratletud päisefailis.

sscanf () parameetrid

  • buffer: Nulliga lõpetatud tähemärgi kursor andmete lugemiseks.
  • format: Nullotsaga tähemärgi kursor, mis määrab sisendi lugemise. See koosneb vorminguspetsifikaatoritest algusega%.

    Formaadistringil on järgmised osad:

    • Non whitespace charactersvälja arvatud%, millest igaüks kasutab sisendvoos ühte identset märki. See võib põhjustada funktsiooni nurjumise, kui voo järgmine märk ei võrdu võrdsega.
    • Whitespace character: Kõiki järjestikusi tühimärke käsitletakse ühe tühimärkidena. Edasi loetakse tähti ' n', ' t' ja '' samaks.
    • Conversion specification: See on järgmises vormingus:
      • Algne% märk, mis määrab alguse
      • Valikuline *, mida nimetatakse määramist summutavaks tähemärgiks. Kui see märk on olemas, ei määra fscanf () tulemust ühelegi vastuvõtuargumendile.
      • Valikuline positiivne täisarv, mis määrab välja maksimaalse laiuse. See määrab maksimaalse tähemärkide arvu, mida fscanf () võib kasutada praeguse teisendusspetsifikatsiooniga määratud teisenduse tegemisel.
      • Valikuline pikkuse muutja, mis määrab vastuvõtu argumendi suuruse.
      • Teisendusvormingu täpsustaja.
        Vorminguspetsifikaator Kirjeldus
        % Sobib sõna otseses mõttes%
        c Sobib ühe või mitme tähemärgiga. Kui laius on määratletud, sobib see täpselt laiuse tähemärkidega.
        s Sobib järjestikuste tühimärkidega. Kui laius on määratletud, vastab see täpselt laiuse tähemärgile või kuni leitakse esimene tühik.
        (komplekt) Sobib antud tähemärkide komplekti mittetühja jada. Kui hulga alguses on ^, siis sobitatakse kõik tähemärgid, mida pole komplektis.
        d Sobib kümnendarvuni.
        i Sobib täisarvuga.
        o Sobib allkirjastamata kaheksandarvuga.
        X või x Sobib allkirjastamata kuueteistkümnendsüsteemi täisarvuga.
        u Sobib allkirjastamata kümnendarvuga.
        A või a, E või e, F või f, G või g Sobib ujukomaarvuga.
        n Tagastab seni loetud märkide arvu.
        lk Vastab rakenduse määratletud märgijärjestusele, mis määrab kursori.
    Seega on vorminguspetsifikaatori üldine vorming: %(*)(width)(length)specifier
  • …: Muud täiendavad argumendid andmete vastuvõtmiseks. Need esinevad järjestuses vastavalt vorminguspetsifikaatorile.

sscanf () Tagastusväärtus

  • Kui see õnnestub, sscanf()tagastab funktsioon edukalt määratud vastuvõetavate argumentide arvu.
  • Kui sobitamise tõrge ilmneb enne esimese vastuvõtuargumendi määramist, tagastab ta nulli.
  • Kui sisenditõrge ilmneb enne esimese vastuvõtuargumendi määramist, tagastatakse EOF.

Näide: kuidas funktsioon sscanf () töötab

 #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; )

Programmi käivitamisel on võimalik väljund:

 Eesnimi: Dennis Perekonnanimi: Ritchie

Huvitavad Artiklid...