Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Anda Mengosongkan dan Menetapkan Semula StringStream dalam C dengan betul?
Mengosongkan dan Menetapkan Semula StringStream
Dalam C , aliran rentetan ialah penimbal input/output yang dikaitkan dengan objek rentetan. Ia membenarkan manipulasi rentetan menggunakan operasi strim.
Pernyataan Masalah:
Pertimbangkan kod berikut:
<code class="cpp">stringstream parser; parser << 5; short top = 0; parser >> top; parser.str(""); // Attempt to reset parser parser << 6; // Doesn't put 6 into parser short bottom = 0; parser >> bottom;</code>
Isu timbul apabila mencuba untuk menggunakan semula aliran rentetan selepas mengosongkan kandungannya menggunakan parser.str("").
Penyelesaian:
Untuk mengosongkan aliran rentetan dengan betul, anda perlu melakukan dua langkah:
<code class="cpp">parser.str( std::string() ); parser.clear();</code>
Penjelasan:
Yang pertama >> operasi membaca integer 5 daripada aliran rentetan dan menetapkan bit eof kerana penghujung rentetan telah dicapai. Percubaan seterusnya untuk membaca 6 gagal kerana bit eof masih ditetapkan. Dengan menetapkan semula rentetan asas dan mengosongkan bendera, anda memulihkan strim kepada konfigurasi awalnya dan membenarkan operasi seterusnya berjaya.
Atas ialah kandungan terperinci Bagaimanakah Anda Mengosongkan dan Menetapkan Semula StringStream dalam C dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!