|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<strstream>
#include<iostream>
using namespace std;
struct student
{
int num;
char name[20];
float score;
};
int main()
{ int i=0;
student stud[3]={1001,"li",78,1002,"wang",89.5,1004,"fun",90};
char c[2]; //定义的数组长度很小
ostrstream strout(c,sizeof(stud)); //缓冲区的长度大于数组c的长度
for(i=0;i<3;i++)
strout<<stud[i].num <<stud[i].name <<stud.score ;
strout<<ends;
cout<<"arry c:"<<c<<endl;
return 0;
}
缓冲区的大小大于数组C的长度,为什么结果仍然可以得到arry c:1001,"li",78,1002,"wang",89.5,1004,"fun",90。我本来以为数组c的大小为2,那么cout<<c时只会得到两个一元素。
[/i][/i] |
|
|