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

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

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

ungetc () prototips

 int ungetc (int ch, FILE * straume);

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

Zvanīšana uz ungetc () var neizdoties, ja to izsauc vairāk nekā vienu reizi, neveicot nekādas lasīšanas vai pārvietošanas darbības pa vidu.

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

Binārajām straumēm veiksmīgs zvans uz ungetc straumes pozīcijas indikatoru samazina par vienu. Ja straumes pozīcijas indikators ir nulle, uzvedība ir nenoteikta.

Teksta straumei veiksmīgs zvans, lai atceltu, 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 ungetc () izsaukšanas.

ungetc () Parametri

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

ungetc () Atgriešanās vērtība

  • Pēc panākumiem funkcija ungetc () atgriež rakstzīmi ch.
  • Pēc kļūmes EOF tiek atgriezts, nemainot straumi.

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

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

 Vērtība = 101

Interesanti raksti...