C ++ ungetc () - C ++ Standard Library

Fungsi ungetc () di C ++ mendorong karakter yang sebelumnya telah dibaca kembali ke aliran sehingga bisa dibaca lagi.

Fungsi ungetc () didefinisikan dalam file header.

ungetc () prototipe

 int ungetc (int ch, FILE * stream);

Fungsi ungetc () mendorong karakter ch kembali ke buffer yang terkait dengan aliran file kecuali ch sama dengan EOF. Jika ch sama dengan EOF, operasi gagal dan tidak ada perubahan dalam aliran.

Panggilan ke ungetc () mungkin gagal jika dipanggil lebih dari sekali tanpa operasi pembacaan atau pemosisian ulang di tengah.

Jika panggilan ke ungetc () berhasil, akhir dari bendera status file feof dihapus.

Untuk aliran biner, panggilan yang berhasil ke ungetc akan mengurangi satu indikator posisi aliran. Jika indikator posisi aliran nol, perilaku tidak dapat ditentukan.

Untuk aliran teks, panggilan yang berhasil ke ungetc mengubah indikator posisi aliran dengan cara yang tidak ditentukan. Tetapi dijamin bahwa setelah semua karakter yang didorong mundur diambil dengan operasi baca, indikator posisi aliran sama dengan nilainya sebelum memanggil ungetc ().

ungetc () Parameter

  • ch: Karakter yang akan didorong kembali.
  • aliran: Aliran file tempat karakter didorong kembali.

ungetc () Nilai kembali

  • Jika berhasil, fungsi ungetc () mengembalikan karakter ch.
  • Jika gagal, EOF dikembalikan tanpa mengubah aliran.

Contoh: Bagaimana fungsi ungetc () bekerja?

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

Saat Anda menjalankan program, output yang mungkin adalah:

 Nilai = 101

Artikel yang menarik...