清除與重設 StringStream
在 C 中,字串流是與字串物件關聯的輸入/輸出緩衝區。它允許使用流操作來操作字串。
問題陳述:
考慮以下程式碼:
<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>
嘗試時出現問題使用parser.str("") 清除字串流的內容後重複使用字串流。
解決方案:
要正確清除字串流,您需要執行兩個步驟:
<code class="cpp">parser.str( std::string() ); parser.clear();</code>
說明:
第一個>>操作從字串流中讀取整數5 並設定eof 位,因為已到達字符串末尾。隨後嘗試讀取 6 失敗,因為 eof 位元仍處於設定狀態。透過重置底層字串並清除標誌,您可以將流恢復到其初始配置並允許後續操作成功。
以上是如何在 C 中正確清除和重置 StringStream ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!