C ++ ungetwc () - C ++ standaardbibliotheek

De functie ungetwc () in C ++ duwt het eerder gelezen brede teken terug naar de stream zodat het opnieuw kan worden gelezen.

De functie ungetwc () is gedefinieerd in het header-bestand.

ungetwc () prototype

 wint_t ungetwc (wint_t ch, FILE * stream);

De functie ungetwc () duwt het brede karakter ch terug naar de buffer die bij de bestandsstroom hoort, tenzij ch gelijk is aan WEOF. Als ch gelijk is aan WEOF, mislukt de bewerking en is er geen verandering in de stream.

Het aanroepen van ungetwc () kan mislukken als het meer dan eens wordt aangeroepen zonder enige lees- of herpositioneringsoperatie in het midden.

Als een aanroep naar ungetwc () is gelukt, wordt de vlag voor de status van het einde van het bestand gewist.

Voor zowel tekst- als binaire stream wijzigt een succesvolle aanroep van ungetwc de streampositie-indicator op een niet-gespecificeerde manier. Maar het is gegarandeerd dat nadat alle teruggedrukte tekens zijn opgehaald met een leesbewerking, de stroompositie-indicator gelijk is aan zijn waarde voordat ungetwc () wordt aangeroepen.

ungetwc () Parameters

  • ch: Het brede karakter dat moet worden teruggeduwd.
  • stream: bestandsstream waarbij het brede teken wordt teruggeduwd.

ungetwc () Retourwaarde

  • Bij succes geeft de functie ungetwc () het teken ch.
  • Bij een storing wordt WEOF geretourneerd zonder de stream te wijzigen.

Voorbeeld: hoe werkt de functie 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; )

Wanneer u het programma uitvoert, is een mogelijke uitvoer:

 Waarde = 719

Interessante artikelen...