開發平台(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);
}