zhumengyun 发表于 2014-9-10 18:48:54

缓冲区使用




#include<strstream>
#include<iostream>
using namespace std;
struct student
{
      int num;
      char name;
      float score;
};
int main()
{      int i=0;
      student stud={1001,"li",78,1002,"wang",89.5,1004,"fun",90};
      char c;      //定义的数组长度很小
      ostrstream strout(c,sizeof(stud));      //缓冲区的长度大于数组c的长度
      for(i=0;i<3;i++)
                strout<<stud.num <<stud.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时只会得到两个一元素。


页: [1]
查看完整版本: 缓冲区使用