C ++ ungetwc () - C ++ standarta bibliotēka

Funkcija ungetwc () programmā C ++ nospiež iepriekš izlasīto plato rakstzīmi atpakaļ straumē, lai to varētu atkārtoti nolasīt.

Funkcija ungetwc () ir definēta galvenes failā.

ungetwc () prototips

 wint_t ungetwc (wint_t ch, FILE * straume);

Funkcija ungetwc () nospiež plašo rakstzīmi ch atpakaļ uz buferi, kas saistīta ar failu straumi, ja vien ch nav vienāds ar WEOF. Ja ch ir vienāds ar WEOF, darbība neizdodas un straumē nav izmaiņu.

Zvani uz ungetwc () var neizdoties, ja tie tiek izsaukti vairāk nekā vienu reizi bez lasīšanas vai pārpozicionēšanas darbības vidū.

Ja izsaukums uz ungetwc () ir veiksmīgs, faila statusa karoga beigas tiek notīrītas.

Gan teksta, gan binārās straumes gadījumā veiksmīgs zvans uz ungetwc nenoteiktā veidā maina straumes pozīcijas indikatoru. Bet tiek garantēts, ka pēc tam, kad ar nolasīšanas darbību ir izgūtas visas atbīdītās rakstzīmes, straumes pozīcijas indikators ir vienāds ar tā vērtību pirms ungetwc () izsaukšanas.

ungetwc () parametri

  • ch: Plašais raksturs, kas jāatstumj.
  • straume: failu straume, kur platais raksturs tiek atgrūsts.

ungetwc () Atgriežamā vērtība

  • Pēc panākumiem funkcija ungetwc () atgriež rakstzīmi ch.
  • Pēc neveiksmes WEOF tiek atgriezts, nemainot straumi.

Piemērs: Kā darbojas funkcija 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; )

Palaidot programmu, iespējamā izeja būs:

 Vērtība = 719

Interesanti raksti...