Bagaimana untuk Menetapkan Semula Stringstream dengan Berkesan?

Mary-Kate Olsen
Lepaskan: 2024-11-04 05:52:01
asal
179 orang telah melayarinya

How to Effectively Reset a Stringstream?

Menetapkan Semula Rentetan Dengan Berkesan

Apabila cuba mengosongkan aliran rentetan untuk menggunakannya semula untuk input dan pengekstrakan selanjutnya, adalah penting untuk menggunakan teknik yang sesuai untuk tetapkan semula strim sepenuhnya. Pertimbangkan contoh berikut:

stringstream parser;

parser << 5;
short top = 0;
parser >> top;
parser.str(""); // Attempting to reset the parser

parser << 6; // Input value ignored
short bottom = 0;
parser >> bottom;
Salin selepas log masuk

Dalam senario ini, percubaan untuk menetapkan semula aliran rentetan dengan memberikan rentetan kosong kepada ahli strnya tidak mengosongkan strim sepenuhnya. Akibatnya, nilai input seterusnya 6 diabaikan dan operasi pengekstrakan kedua gagal.

Untuk menetapkan semula aliran rentetan dengan berkesan, bukan sahaja perlu menetapkan rentetan kosong kepada str tetapi juga mengosongkan sebarang kegagalan yang masih ada dan bendera eof. Ini boleh dicapai menggunakan kaedah yang jelas:

parser.str(std::string());
parser.clear();
Salin selepas log masuk

Dengan melaksanakan kedua-dua tindakan ini, aliran rentetan ditetapkan semula sepenuhnya dan sedia untuk digunakan semula, kerana urutan asas dikosongkan dan semua bendera dikosongkan. Gagal melaksanakan kedua-dua langkah boleh membawa kepada tingkah laku yang tidak dijangka, seperti strim kekal dalam keadaan "akhir fail", menyebabkan operasi seterusnya gagal.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Semula Stringstream dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!