读书人

!关于istrstream的应用有关问题

发布时间: 2012-02-22 19:36:55 作者: rapoo

!!!!!!!!关于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;
}

读书人网 >C++

热点推荐