[問題] istringstream >>導入觀念詢問

看板C_and_CPP (C/C++)作者 (R大)時間11年前 (2014/08/17 12:09), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) QT 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) None 問題(Question): 從上篇發文,我學會了使用istringstream,但在導入上有些觀念要詢問, 以一個string作範例,如程式碼,為了要將此字串分割於陣列裏頭 使用while(istr>>b[i]),讓他"依序"將值導入於陣列, 想問的是之所以會有依序這個動作是他本身函式內建的動作嗎? 我原本以為他是搬移,將istr內的搬至b[i],因此有依序 但將istr.str() cout出,卻發現他並不是搬移 再來,若我在while loop裡面再對另一個陣列c做導入 while(istr>>b[i]) { istr>>c[i] 會使得我istr又往前一個資料 想清楚釐清這方面的觀念 謝謝 程式碼(Code):(請善用置底文網頁, 記得排版) #include<iostream> #include<sstream> using namespace std; int main() { string s="1 10 22 33"; int b[4],c[4]; istringstream istr; istr.str(s); int a=0; while(istr>>b[a]) { for(int i=0;i<4;i++) cout<<b[i]<<"\t"; a++; cout<<istr.str()<<endl; } return(0); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.101.186 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1408248557.A.E91.html

08/17 12:26, , 1F
stream概念類似queue或buffer 用掉後就不存在了
08/17 12:26, 1F

08/17 12:55, , 2F
用掉不存在,但是我後面呼叫cout<<istr...時
08/17 12:55, 2F

08/17 12:55, , 3F
仍可以完整呼叫,這跟不存在好像有所衝突
08/17 12:55, 3F

08/18 00:39, , 4F
stream的<<是將右邊放到左邊。>>是左邊放到右邊
08/18 00:39, 4F

08/18 00:42, , 5F
噢,istr.str會回應stream的內容
08/18 00:42, 5F
文章代碼(AID): #1Jy2hjwH (C_and_CPP)
文章代碼(AID): #1Jy2hjwH (C_and_CPP)