Daily Archives: October 8, 2021

stringstream使用

寫一個parser簡單的parse input,可以利用stringstream簡單做tokenizer 上面這個寫法看起來沒問題,檢查stringstream的state,如果fail就跳出迴圈,但其實這個寫法並不完全安全 我們再來看另一個範例 一般可能會預期就是印出1, 2, 3, 4, 5, 6的ascii int,但其實還多了一個-1 ,也就是說,在讀完6之後ss 的state還不是eof,等到做了peek()操作後,eof bit就會set了 因此在處理stringstream讀取時,此部分要特別小心,不能假設ss valid代表後面的讀操作就 會正確,還需要在讀操作後做一些檢查 以peek來說,C++11標準中描述的行為 int_type peek(); Effects: Behaves as an unformatted input function (as described in 27.7.2.3, paragraph 1). After constructing a sentry object, reads but … Continue reading

Posted in C++ Language | Leave a comment