C ++ ungetc () - C ++ standartinė biblioteka

C ++ funkcija ungetc () nustumia anksčiau perskaitytą simbolį atgal į srautą, kad jį būtų galima perskaityti dar kartą.

Funkcija ungetc () yra apibrėžta antraštės faile.

ungetc () prototipas

 int ungetc (int ch, FILE * stream);

Funkcija ungetc () stumia simbolį ch atgal į buferį, susietą su failų srautu, nebent ch yra lygus EOF. Jei ch yra lygus EOF, operacija nepavyksta ir sraute nėra pokyčių.

Skambinti „ungetc“ () gali nepavykti, jei jis iškviečiamas daugiau nei vieną kartą, neskaitant viduryje jokių skaitymo ar perkėlimo operacijų.

Jei skambutis „ungetc“ () yra sėkmingas, failo būsenos žymos pabaiga išvaloma.

Dvejetainiams srautams sėkmingas skambutis, kad būtų panaikinta, srauto padėties rodiklį sumažina vienu. Jei srauto padėties rodiklis yra nulis, elgsena yra neapibrėžta.

Teksto srautui sėkmingas skambutis, kad būtų pašalintas, nenurodytas pakeičia srauto padėties rodiklį. Tačiau garantuojama, kad po to, kai skaitymo operacijos metu gaunami visi atgaliniai simboliai, srauto padėties indikatorius yra lygus jo vertei prieš iškviečiant „ungetc“ ().

ungetc () parametrai

  • ch: Atstumiamas personažas.
  • srautas: failo srautas, kur simbolis nustumtas atgal.

ungetc () Grąžinimo vertė

  • Pasisekus funkcija ungetc () grąžina simbolį ch.
  • Sugedus EOF grąžinamas nekeičiant srauto.

Pavyzdys: Kaip veikia funkcija ungetc ()?

 #include #include #include using namespace std; int main() ( int c; long value = 0; char str() = "101axc"; FILE *fp = fopen("file.txt", "r+"); fputs(str,fp); rewind(fp); while(1) ( c = fgetc(fp); if (isdigit(c)) value = value*10 + c - '0'; else break; ) ungetc(c, fp); cout << "Value = " << value << endl; fclose(fp); return 0; )

Kai paleisite programą, galimas rezultatas bus:

 Vertė = 101

Įdomios straipsniai...