看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
x000032001: stream概念類似queue或buffer 用掉後就不存在了 08/17 12:26
redonizuka: 用掉不存在,但是我後面呼叫cout<<istr...時 08/17 12:55
redonizuka: 仍可以完整呼叫,這跟不存在好像有所衝突 08/17 12:55
sunneo: stream的<<是將右邊放到左邊。>>是左邊放到右邊 08/18 00:39
sunneo: 噢,istr.str會回應stream的內容 08/18 00:42