C ++ ungetwc () - C ++ - vakiokirjasto

C ++: n ungetwc () -toiminto työntää aiemmin luetun leveän merkin takaisin streamiin, jotta se voidaan lukea uudelleen.

Toiminto ungetwc () määritetään otsikkotiedostossa.

ungetwc () -prototyyppi

 wint_t ungetwc (wint_t ch, FILE * -virta);

Ungetwc () -toiminto työntää leveän merkin ch takaisin tiedostovirtaan liittyvään puskuriin, ellei ch ole yhtä suuri kuin WEOF. Jos ch on yhtä suuri kuin WEOF, operaatio epäonnistuu eikä streamissa tapahdu muutoksia.

Kutsu ungetwc () voi epäonnistua, jos sitä kutsutaan useammin kuin kerran ilman keskellä olevaa luku- tai uudelleensijoittamistoimintoa.

Jos kutsu ungetwc () -sovellukseen onnistuu, tiedoston tilan lipun loppu poistetaan.

Sekä teksti- että binaarivirran kohdalla onnistunut kutsu ungetwc: lle muuttaa virta-aseman osoitinta määrittelemättömällä tavalla. Mutta on taattu, että kun kaikki palautetut merkit on haettu lukutoiminnolla, virta-asennon ilmaisin on yhtä suuri kuin arvo ennen kuin kutsutaan ungetwc ().

ungetwc () -parametrit

  • ch: Leveä merkki työnnetään taaksepäin.
  • stream: Tiedostovirta, jossa leveä merkki työnnetään taaksepäin.

ungetwc () Palautusarvo

  • Menestyksessä ungetwc () -funktio palauttaa merkin ch.
  • Epäonnistumisen yhteydessä WEOF palautetaan muuttamatta virtaa.

Esimerkki: Kuinka ungetwc () -toiminto toimii?

 #include #include #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wint_t c; long value = 0; wchar_t str() = L"u0037u0031u0039u00b6u03ee"; FILE *fp = fopen("file.txt", "r+"); fputws(str,fp); rewind(fp); while(1) ( c = fgetwc(fp); if (iswdigit(c)) value = value*10 + c - L'0'; else break; ) ungetwc(c, fp); cout << "Value = " << value << endl; fclose(fp); return 0; )

Kun suoritat ohjelmaa, mahdollinen tulos on:

 Arvo = 719

Mielenkiintoisia artikkeleita...