!!!!!!!!关于istrstream的应用问题
先给出istrstream一个简单的应用,
问:能否扩展其应用?
//应用1
#include <iostream.h>
#include <strstrea.h>
void main()
{
char *str = "1234 100.35 ";
istrstream inp(str);
int nNumber;
float balance;
inp > > nNumber;
inp > > balance;
cout < < nNumber < < ' ' < < balance < < endl;
}
//应用2,可以利用istrstream分别将str中的1存到array1、1 2存到array2、1 2 3存到array3中么?如果不行能详细给个更好的方法吗?
#include <iostream.h>
#include <strstrea.h>
void main()
{
char *str = "1 1,2 1,2,3 ";
int array1[1];
int array2[2];
int array3[3];
//...
}
[解决办法]
用流直接给数组赋值当然有非常简单的办法:用istream_iterator加copy等泛型算法。
[解决办法]
#include <sstream>
#include <vector>
#include <iostream>
#include <string>
#include <iterator>
using namespace std;
int main(void)
{
char *str = "1234 100 35 ";
istringstream inp(str);
vector <int> vec;
copy(istream_iterator <int> (inp), istream_iterator <int> (), back_inserter(vec));
copy(vec.begin(), vec.end(), ostream_iterator <int> (cout, ", "));
cout < < endl;
return 0;
}