C ++ sscanf () - C ++ - vakiokirjasto

C ++: n sscanf () -funktiota käytetään tietojen lukemiseen merkkijonopuskurista.

sscanf () -prototyyppi

 int sscanf (const char * puskuri, const char * muoto,…);

sscanf()Toiminto lukee tiedot lukee datan puskuriin ja tallentaa arvot vastaaviin muuttujiin.

Se määritetään otsikkotiedostossa.

sscanf () -parametrit

  • buffer: Nollapätkän merkkijonon osoitin tietojen lukemiseksi.
  • 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ä, fscanf () 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 fscanf () 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.

sscanf () Palautusarvo

  • Jos se onnistuu, sscanf()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 sscanf () -toiminto toimii

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

Kun suoritat ohjelmaa, mahdollinen tulos on:

 Etunimi: Dennis Sukunimi: Ritchie

Mielenkiintoisia artikkeleita...