C ++ ungetc () - Perpustakaan Standard C ++

Fungsi ungetc () dalam C ++ mendorong watak yang dibaca sebelumnya kembali ke aliran sehingga dapat dibaca lagi.

Fungsi ungetc () ditentukan dalam fail header.

ungetc () prototaip

 int ungetc (int ch, FILE * stream);

Fungsi ungetc () mendorong watak ch kembali ke penyangga yang berkaitan dengan aliran fail kecuali ch sama dengan EOF. Sekiranya ch sama dengan EOF, operasi gagal dan tidak ada perubahan dalam aliran.

Panggilan ke ungetc () mungkin gagal jika dipanggil lebih dari sekali tanpa ada operasi membaca atau menyusun semula di tengah.

Sekiranya panggilan ke ungetc () berjaya, akhir bendera status fail dikosongkan.

Untuk aliran binari, panggilan yang berjaya untuk membuat ungetc mengurangkan penunjuk kedudukan aliran dengan satu. Sekiranya penunjuk kedudukan aliran adalah sifar, tingkah laku itu tidak tentu.

Untuk aliran teks, panggilan yang berjaya untuk ungetc mengubah penunjuk kedudukan aliran dengan cara yang tidak ditentukan. Tetapi dijamin bahawa setelah semua watak terdorong diambil dengan operasi baca, penunjuk kedudukan aliran sama dengan nilainya sebelum memanggil ungetc ().

ungetc () Parameter

  • ch: Perwatakan yang akan ditolak ke belakang.
  • stream: Aliran fail di mana watak ditolak ke belakang.

ungetc () Nilai pulangan

  • Pada kejayaan, fungsi ungetc () mengembalikan watak ch.
  • Pada kegagalan EOF dikembalikan tanpa mengubah aliran.

Contoh: Bagaimana fungsi ungetc () berfungsi?

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

Semasa anda menjalankan program, output yang mungkin adalah:

 Nilai = 101

Artikel menarik...