Re: [問題] stringstream 清空

看板C_and_CPP (C/C++)作者 (Acquire higher)時間15年前 (2011/01/13 10:54), 編輯推噓1(100)
留言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
文章代碼(AID): #1DBcbIW- (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1DBcbIW- (C_and_CPP)