ホームページ  >  記事  >  バックエンド開発  >  文字列ストリームを効果的にリセットするにはどうすればよいですか?

文字列ストリームを効果的にリセットするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-04 05:52:01188ブラウズ

How to Effectively Reset a Stringstream?

文字列ストリームを効果的にリセットする

さらなる入力や抽出のために文字列ストリームを再利用するために文字列ストリームをクリアしようとする場合、適切な手法を採用することが不可欠です。ストリームを完全にリセットします。次の例を考えてみましょう。

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;

このシナリオでは、空の文字列を str メンバーに割り当てて stringstream をリセットしようとしても、ストリームは完全にはクリアされません。その結果、後続の入力値 6 は無視され、2 番目の抽出操作は失敗します。

文字列ストリームを効果的にリセットするには、空の文字列を str に割り当てるだけでなく、残りの失敗とエラーをすべてクリアする必要があります。 Eof フラグ。これは、clear メソッドを使用して実現できます。

parser.str(std::string());
parser.clear();

これらのアクションを両方実行すると、基になるシーケンスが空になり、すべてのフラグがクリアされるため、文字列ストリームが完全にリセットされ、再利用できるようになります。両方の手順を実行しないと、ストリームが「ファイルの終わり」状態のままになるなど、予期しない動作が発生し、後続の操作が失敗する可能性があります。

以上が文字列ストリームを効果的にリセットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。