一个关于ostringstream的问题

bandit110 2004-02-20 01:58:58
#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,请问怎么解决?

...全文
151 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

还没有回复,快来抢沙发~

相关推荐
发帖
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2004-02-20 01:58
社区公告
暂无公告