istringstream的構造函數原形如下:
istringstream::istringstream(string str);
例子1:
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
istringstream istr;
istr.str("1 56.7");
//上述兩個過程可以簡單寫成 istringstream istr("1 56.7");
cout << istr.str() << endl;
int a;
float b;
istr >> a; //輸入以空格分隔
cout << a << endl;
istr >> b;
cout << b << endl;
return 0;
}
以上只能使用空格作爲分隔符分隔字符串,若是遇到想要以其他分隔符分隔字符串時則不能實現,如:
string st = "Enter,the,name,of,an,existing,text,file:";
istringstream stream(st);
現在想要以“,”分隔字符串,以上方法不能實現;可以使用get()函數來實現,下面是我在論壇上看到的大神的方法:
int length;
string st = "Enter,the,name,of,an,existing,text,file:";
istringstream stream(st);
int i = 0;
char array[20] = { 0 };
while (stream.get(array, 20, ','))
{
length = stream.tellg();
cout << array << endl;
stream.seekg(length + 1, ios::beg);
}
運行結果爲:
Enter
the
name
of
an
existing
text
file
僅供參考。
參考博客:
http://blog.csdn.net/marelin/article/details/22663291;
http://bbs.csdn.net/topics/360194050;