//以下代码在gcc3.4.5下编译通过
#include <iostream>
#include <sstream>
using namespace std;
template<class T>
int DivideData(char *s,T para[],char mark=' ')
{
string str;
int ret = 0;
try
{
while(*s)
{
if (*s != mark)
{
str.append(s,1);
}
else
{
if (!str.empty())
{
istringstream stream(str);
stream >> *para;
para++;
str.clear();
//vc6没有clear函数,可以用resize(0)代替。
ret++;
}
}
s++;
}
istringstream stream(str);
stream >> *para;
ret++;
}
catch(...)
{
return ret;
}
return ret;
}
int main()
{
char *s = "12,34,578,-90,63";
int p[5];
DivideData<int>(s,p,',');
for (int i = 0; i < 5;i++)
cout<<p[i]<<endl;
return 0;
}