Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menetapkan Semula Stringstream dengan Berkesan?
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;
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();
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!