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;