C ++ scanf - C ++ - vakiokirjasto

C ++: n scanf () -toimintoa käytetään tietojen lukemiseen stdinistä.

scanf () -prototyyppi

 int scanf (const char * -muoto,…);

scanf()Toiminto lukee datan stdinja tallentaa arvot vastaaviin muuttujiin.

Se määritetään otsikkotiedostossa.

scanf () -parametrit

  • format: Nollapätkän merkkijonon osoitin, joka määrittää, miten syötettä luetaan. Se koostuu muodon määrittelijöistä, jotka alkavat%.

    Formaatin merkkijonossa on seuraavat osat:

    • Non whitespace characterspaitsi%, joista kukin kuluttaa yhden identtisen merkin tulovirrasta. Se voi aiheuttaa funktion epäonnistumisen, jos virran seuraava merkki ei ole yhtä suuri.
    • Whitespace character: Kaikkia peräkkäisiä välilyöntejä käsitellään yhtenä tyhjänä merkkinä. Lisäksi ' n', ' t' ja '' pidetään samoina.
    • Conversion specification: Se noudattaa seuraavaa muotoa:
      • Alkuperäinen% merkki, joka määrittää alun
      • Valinnainen * nimeltään tehtävää tukahduttava merkki. Jos tämä merkki on läsnä, scanf () ei määritä tulosta mihinkään vastaanottavaan argumenttiin.
      • Valinnainen positiivinen kokonaisluku, joka määrittää kentän enimmäisleveyden. Se määrittää merkkien enimmäismäärän, jonka scanf () saa kuluttaa tehdessään nykyisen muunnosmäärityksen mukaisen muunnoksen.
      • Valinnainen pituusmuunnin, joka määrittää vastaanottavan argumentin koon.
      • Muunnosmuodon määrittelijä.
        Formaatin määrittelijä Kuvaus
        % Vastaa kirjaimellista%
        c Yhdistää yhden merkin tai useita merkkejä. Jos leveys on määritetty, vastaa täsmälleen leveysmerkkejä.
        s Vastaavat peräkkäisiä muita kuin välilyöntejä. Jos leveys on määritelty, vastaa täsmälleen leveysmerkkejä tai kunnes ensimmäinen välilyönti löytyy.
        (aseta) Vastaa ei-tyhjää merkkijonoa annetusta merkistöstä. Jos on joukon alussa, kaikki merkit, joita ei ole asetettu, vastaavat toisiaan.
        d Vastaa desimaalilukua.
        i Vastaa kokonaislukua.
        o Vastaa allekirjoittamatonta oktaalilukua.
        X tai x Vastaa allekirjoittamatonta heksadesimaalilukua.
        u Vastaa allekirjoittamatonta desimaalilukua.
        A tai a, E tai e, F tai f, G tai g Vastaa liukuluvun lukua.
        n Palauttaa tähän mennessä luettujen merkkien lukumäärän.
        s Vastaa toteutuksen määrittelemää merkkijonoa, joka määrittää osoittimen.
    Joten muodon määrittelijän yleinen muoto on: %(*)(width)(length)specifier
  • …: Muita lisäväitteitä tietojen vastaanottamiseksi. Ne esiintyvät järjestyksessä muodon määrittelijän mukaan.

scanf () Palautusarvo

  • Jos se onnistuu, scanf()funktio palauttaa onnistuneesti määritettyjen vastaanottavien argumenttien määrän.
  • Jos vastaavuus epäonnistuu ennen kuin ensimmäinen vastaanottava argumentti on osoitettu, palauttaa nollan.
  • Jos syötevika ilmenee ennen kuin ensimmäinen vastaanottava argumentti on osoitettu, EOF palautetaan.

Esimerkki: Kuinka scanf () -toiminto toimii

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

Kun suoritat ohjelmaa, mahdollinen tulos on:

 Hei Tim, olet 31-vuotias

Mielenkiintoisia artikkeleita...