有关c++输出流

[复制链接]
查看11 | 回复2 | 2010-7-11 23:47:44 | 显示全部楼层 |阅读模式
#include
#include
void main(){
cout<<setfill('*')<<setw(6)<<setiosflags(ios::left)<<123<<setw(6)<<setiosflags(ios::right)<<321<<456<<'\n';

//123******321

cout<<123<<setfill('*')<<setw(6)<<321<<'\n';
//123***321
cout<<setfill('*')<<setw(9)<<setiosflags(ios::left)<<123<<321<<'\n';
//123******321
}
以上是这个程序,我所写的答案在注释后面。而运行的结果与我想的却不一样,是这样的
123***321***456
123321***
123******321
只有最后一个是一样的,为什么

回复

使用道具 举报

千问 | 2010-7-11 23:47:44 | 显示全部楼层
cout<<setfill('*')<<setw(6)<<setiosflags(ios::left)<<123<<setw(6)<<setiosflags(ios::right)<<321<<endl;
//123******321
cout<<123<<setfill('*')<<setw(6)<<setiosflags(ios::right)<<321<<endl;
//123***321
cout<<resetiosflags(ios::right)<<setfill('*')<<setw(6)<<setiosflags(ios::left)<<123<<321<<endl;
//123*
回复

使用道具 举报

千问 | 2010-7-11 23:47:44 | 显示全部楼层
你换用一个新一些的编译器来试一下...我用GCC4 和MS VC 8 测试的结果是123******321456123***321******123321这样..第一二个就已经如你设想的那样工作了...看来需要仔细研究一下相关的操作符的副作用的说明.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行