C ++ ungetwc () - C ++ szabványos könyvtár

A C ++ programban az ungetwc () függvény visszaszorítja a korábban beolvasott széles karaktert az adatfolyamba, hogy újra olvasható legyen.

Az ungetwc () függvény a fejlécfájlban van meghatározva.

ungetwc () prototípus

 wint_t ungetwc (wint_t ch, FILE * folyam);

Az ungetwc () függvény visszaszorítja a ch széles karaktert a fájlfolyamhoz társított pufferbe, hacsak a ch nem egyenlő a WEOF-mel. Ha a ch értéke megegyezik a WEOF értékkel, a művelet meghiúsul, és az adatfolyamban nincs változás.

Az ungetwc () hívása meghiúsulhat, ha többször hívják meg, anélkül, hogy bármilyen olvasási vagy áthelyezési művelet lenne a közepén.

Ha az ungetwc () meghívása sikeres, a fájl állapotának jelzőjének vége törlődik.

Mind a szöveges, mind a bináris adatfolyam esetében az ungetwc sikeres hívása meghatározatlan módon módosítja az adatfolyam helyzetjelzőt. De garantált, hogy miután az összes visszalépett karakter beolvasásra került egy olvasási művelettel, az adatfolyam-helyzetjelző megegyezik annak értékével, mielőtt meghívná az ungetwc () parancsot.

ungetwc () Paraméterek

  • ch: A széles karakter, amelyet vissza kell tolni.
  • stream: Fájlfolyam, ahol a széles karaktert visszalökik.

ungetwc () Visszatérési érték

  • Siker esetén az ungetwc () függvény visszaadja a ch karaktert.
  • Meghibásodás esetén a WEOF visszaküldik az adatfolyam megváltoztatása nélkül.

Példa: Hogyan működik az ungetwc () függvény?

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

A program futtatásakor egy lehetséges kimenet lesz:

 Érték = 719

érdekes cikkek...