Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Anda Mengosongkan dan Menetapkan Semula StringStream dalam C dengan betul?

Bagaimanakah Anda Mengosongkan dan Menetapkan Semula StringStream dalam C dengan betul?

Patricia Arquette
Lepaskan: 2024-11-04 09:17:02
asal
401 orang telah melayarinya

How Do You Properly Clear and Reset a StringStream in C  ?

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>
Salin selepas log masuk

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:

  1. Tetapkan semula rentetan asas kepada rentetan kosong menggunakan parser.str(std::string()).
  2. Kosongkan sebarang bendera gagal dan eof menggunakan parser.clear().
<code class="cpp">parser.str( std::string() );
parser.clear();</code>
Salin selepas log masuk

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!

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