Funktsioon fwscanf () C ++ -s loeb failivoogudest laia märki.
Funktsioon fwscanf () on määratletud päisefailis.
fwscanf () prototüüp
int fwscanf (FILE * voog, const wchar_t * formaat,…);
Funktsioon fwscanf () loeb andmeid failivoo voost ja salvestab väärtused vastavatesse muutujatesse.
fwscanf () parameetrid
- voog: sisendfailivoog, kust andmeid lugeda.
- formaat: nulliga lõpetatud tähemärgi kursor, mis määrab, kuidas sisendit lugeda. See koosneb vorminguspetsifikaatoritest algusega%.
Formaadistringil on järgmised osad:- Muud tühimärgid, välja arvatud%, millest igaüks kulutab sisendvoost ühte identset tähemärki. See võib põhjustada funktsiooni nurjumise, kui voo järgmine märk ei võrdu võrdsega.
- Tühimärk: kõiki järjestikuseid tühimärke käsitletakse ühe tühimärgina. Edasi loetakse tähti ' n', ' t' ja '' samaks.
- Teisenduse spetsifikatsioon: see järgib järgmist vormingut:
- 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 fwscanf () tulemust ühelegi vastuvõtuargumendile.
- Valikuline positiivne täisarv, mis määrab välja maksimaalse laiuse. See määrab maksimaalse tähemärkide arvu, mida fwscanf () 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.
Seega on vorminguspetsifikaatori üldine vorming:% (*) (laius) (pikkus) täpsustaja
- …: Muud täiendavad argumendid andmete vastuvõtmiseks. Need esinevad järjestuses vastavalt vorminguspetsifikaatorile.
fwscanf () Tagastusväärtus
- Funktsioon fwscanf () tagastab edukalt määratud vastuvõtvate argumentide arvu.
- Kui tõrge ilmneb enne esimese vastuvõtuargumendi määramist, tagastatakse EOF.
Näide: Kuidas funktsioon fwscanf () töötab?
#include #include #include #include int main() ( FILE *fp = fopen("example.txt","w+"); wchar_t str(10), ch; setlocale(LC_ALL, "en_US.UTF-8"); fwprintf(fp, L"%ls %lc", L"Summation", L'u2211'); fwprintf(fp, L"%ls %lc", L"Integral", L'u222b'); rewind(fp); while((fwscanf(fp, L"%ls %lc", str, &ch))!=EOF) ( wprintf(L"%lc is %ls", ch, str); ) fclose(fp); return 0; )
Programmi käivitamisel on võimalik väljund:
∑ on liitmine ∫ on lahutamatu