Re: [問題] stringstream 清空
看板C_and_CPP (C/C++)作者adxis (Acquire higher)時間15年前 (2011/01/13 10:54)推噓1(1推 0噓 0→)留言1則, 1人參與討論串2/2 (看更多)
※ 引述《EdisonX (閉上眼的魚)》之銘言:
: 問題(Question):
: 最近看到 C++ Primer 4th ch8,
: 裡面的 class 覺得好莫生,於是先上網找
: fstream, istream, ostream, iostream, istream, ostream... etc 的說明。
: 先找 stringstream 說明, 讓我愈看愈亂
: C++ reference 裡面 stringstream 範例都是用 cin, cout 做範例,
: 還有一堆繼承的東西, 就是沒找到範例裡面有 stringstream 的東西,
: (讓我感到好像不會用 reference 查資料)
: 還是這部份要等念完整本 Primer 的時候才會知道要怎麼看 C++ reference ?
: 離題了, 如果要清空 stringstream 重覆使用
: 到底是要 .str(""), 還是要 .clean() ?
: clean 是把 flag 清掉
: .str("") 是把 buffer 裡內容清掉
: 重覆使用時是要二個都調用嗎?還是調用其中一個就好了?
: 謝謝各位幫忙,小弟感激不盡
stream 類別的 clear() 都是清除 state flag,像是 eofbit 或是 failbit
並不會清除 buffer ,要清除buffer 以 stringstream 來說用 str("") 是沒問題
但是 str() 並不會清除 state flag,考慮下面的程式
stringstream cvt;
int i(0);
cvt.str("t123");
cvt>>i; // fail
cvt.str("123");
cvt>>i; // cvt 依舊是 fail 因為 state flag 沒清除
cout<<i; // i 仍然是 0
所以 str("") 跟 clear() 在這種情況下都會被呼叫
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.71.92
推
01/13 13:18, , 1F
01/13 13:18, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
11
39