C ++ scanf - C ++ standardraamatukogu

Funktsiooni scanf () kaustas C ++ kasutatakse stdinilt andmete lugemiseks.

scanf () prototüüp

 int scanf (const char * formaat,…);

scanf()Funktsioon loeb andmeid stdinja salvestab väärtused vastavate muutujate.

See on määratletud päisefailis.

scanf () parameetrid

  • 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 scanf () tulemust ühelegi vastuvõtuargumendile.
      • Valikuline positiivne täisarv, mis määrab välja maksimaalse laiuse. See määrab maksimaalse märkide arvu, mida scanf () võib praeguse teisendusspetsifikatsiooniga määratud teisenduse tegemisel tarbida.
      • 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.

scanf () Tagastusväärtus

  • Kui see õnnestub, scanf()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 scanf () töötab

 #include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )

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

 Tere, Tim, sa oled 31-aastane

Huvitavad Artiklid...