文字列ストリームを効果的にリセットする
さらなる入力や抽出のために文字列ストリームを再利用するために文字列ストリームをクリアしようとする場合、適切な手法を採用することが不可欠です。ストリームを完全にリセットします。次の例を考えてみましょう。
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 サイトの他の関連記事を参照してください。