#include <iostream>
#include <strstream>
using namespace std;
struct student
{
int num;
char name[20];
double score;
};
int main()
{
student stud[30]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90},stud1[3];
char c[50];
int i;
ostrstream strout(c,50); //建立输出串流strout,与字符数组c关联
for (i=0;i<3;i++)
strout << " " << stud[i].num << " " << stud[i].name << " " << stud[i].score;
strout << ends;
cout << "array c:" << endl << c << endl << endl; //显示数组c的内容
istrstream strin(c,50); //建立输入串流strin,与字符数组c关联
for (i=0;i<3;i++) //从c读入3个学生的数据,赋给stud1数组
strin >> stud1[i].num >> stud1[i].name >> stud1[i].score;
cout << "data from array c to array stud1:" << endl;
for (i=0;i<3;i++)
cout << stud1[i].num << " " << stud1[i].name << " " << stud1[i].score << endl;
cout << endl;
cout << "Hello world!" << endl;
return 0;
}
方法2:直接建立一个输入输出串流
#include <iostream>
#include <strstream>
using namespace std;
struct student
{
int num;
char name[20];
double score;
};
int main()
{
student stud[30]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90},stud1[3];
char c[50];
int i;
strstream strio(c,50,ios::in|ios::out); //建立输出串流strout,与字符数组c关联
for (i=0;i<3;i++)
strio << " " << stud[i].num << " " << stud[i].name << " " << stud[i].score;
strio << ends;
cout << "array c:" << endl << c << endl << endl; //显示数组c的内容
for (i=0;i<3;i++) //从c读入3个学生的数据,赋给stud1数组
strio >> stud1[i].num >> stud1[i].name >> stud1[i].score;
cout << "data from array c to array stud1:" << endl;
for (i=0;i<3;i++)
cout << stud1[i].num << " " << stud1[i].name << " " << stud1[i].score << endl;
cout << endl;
cout << "Hello world!" << endl;
return 0;
}
在Code::Blocks运行,参照谭浩强C++程序设计上机操作。