C ++: n wscanf () -funktio lukee leveän merkin stdinistä.
Wscanf () -toiminto määritetään otsikkotiedostossa.
wscanf () -prototyyppi
int wscanf (const char * -muoto,…);
Wscanf () -toiminto lukee tiedot stdinistä ja tallentaa arvot vastaaviin muuttujiin.
wscanf () -parametrit
- muoto: Osoitin nollapäätteiseen merkkijonoon, joka määrittää, miten syötettä luetaan. Se koostuu muotomäärittimistä, jotka alkavat%: lla.
Formaatin merkkijonossa on seuraavat osat:- Muut kuin välilyönnit, paitsi%, joista kukin kuluttaa yhden identtisen merkin syöttövirrasta. Se voi aiheuttaa funktion epäonnistumisen, jos virran seuraava merkki ei ole yhtä suuri.
- Välilyönti-merkki: Kaikki peräkkäiset tyhjät-merkit käsitellään yhtenä tyhjänä -merkkinä. Lisäksi ' n', ' t' ja '' pidetään samoina.
- Muunnosmäärittely: 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ä, wscanf () 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 wscanf () 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:% (*) (leveys) (pituus) määrittelijä
- …: Muita lisäväitteitä tietojen vastaanottamiseksi. Ne esiintyvät järjestyksessä muodon määrittelijän mukaan.
wscanf () Palautusarvo
- Wscanf () -funktio palauttaa onnistuneesti määritettyjen vastaanottavien argumenttien määrän.
- Jos vika tapahtuu ennen kuin ensimmäinen vastaanottava argumentti on osoitettu, EOF palautetaan.
Esimerkki: Kuinka wscanf () -toiminto toimii?
#include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t ch; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Enter a wide character: "); wscanf(L"%lc",&ch); if (iswalnum(ch)) wcout << ch << L" is alphanumeric." << endl; else wcout << ch << L" is not alphanumeric." << endl; return 0; )
Kun suoritat ohjelmaa, mahdollinen tulos on:
Kirjoita leveä merkki: ∭ ∭ ei ole aakkosnumeerinen.