C ++ ungetwc () - C ++ standardbibliotek

Ungetwc () -funksjonen i C ++ skyver det tidligere leste brede tegnet tilbake til strømmen slik at den kan leses igjen.

Ungetwc () -funksjonen er definert i topptekstfilen.

ungetwc () prototype

 wint_t ungetwc (wint_t ch, FILE * stream);

Ungetwc () -funksjonen skyver det brede tegnet ch tilbake til bufferen assosiert med filstrømmen med mindre ch er lik WEOF. Hvis ch er lik WEOF, mislykkes operasjonen, og det er ingen endring i strømmen.

Anrop til ungetwc () kan mislykkes hvis det blir ringt opp mer enn en gang uten noen lese- eller omplasseringsoperasjon i midten.

Hvis et anrop til ungetwc () lykkes, slettes slutten på filstatusflaggfeof.

For både tekst og binær strøm endrer en vellykket samtale til ungetwc strømposisjonsindikatoren på en uspesifisert måte. Men det er garantert at etter at alle tilbaketrukne tegn er hentet med en leseoperasjon, er strømposisjonsindikatoren lik verdien før du ringer ungetwc ().

ungetwc () Parametere

  • ch: Den brede karakteren som skal skyves tilbake.
  • stream: File stream der det brede tegnet skyves tilbake.

ungetwc () Returverdi

  • Ved suksess returnerer funksjonen ungetwc () tegnet ch.
  • Ved feil returneres WEOF uten å endre strømmen.

Eksempel: Hvordan fungerer ungetwc ()?

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

Når du kjører programmet, vil en mulig utgang være:

 Verdi = 719

Interessante artikler...