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 characters
vä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.
%(*)(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