一个关于ostringstream的问题
#include <iostream>
#include <sstream>
void main()
{
//char s[16];
ostringstream ostr;
#if 1
for(int i = 1;i<=9;i++)
{
for(int j = 1;j <= i; j++)
{
// ostr.rdbuf()->freeze(0);
ostr<<i<<'X'<<j<<'='<<i*j<<'\0';
cout<<ostr.str();
if(j < i)cout<<" ";
else if(j == i)cout<<endl;
}
}
#endif
}
输出结果如下,
1X1=1
1X1=1 1X1=1
1X1=1 1X1=1 1X1=1
1X1=1 1X1=1 1X1=1 1X1=1
1X1=1 1X1=1 1X1=1 1X1=1 1X1=1
1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1
1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1
1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1
1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1 1X1=1
我本来以为结果应该是
1X1=1
2X1=2 2X2=4
3X1=3 3X2=6 3X3=9
4X1=4 4X2=8 4X3=12 4X4=16
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81
好像是因为cout<<ostr.str();调用这句后,freeze了ostr,请问怎么解决?