关于cout.fill('*')的问题

Gzd2003 2008-12-10 09:31:05
存在以下程序,为什么输出是
123456789
******* 123

不是设置了8个宽度吗?应该是*****123呀?请指教。




#include <iostream>
using namespace std;

void main()
{
cout<<"123456789"<<endl;
cout.width(8);
cout<<cout.fill('*')<<123<<endl;
}
...全文
762 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aurora001 2008-12-10
  • 打赏
  • 举报
回复
cout <<setfill('*')<<setw(8)<<123 <<endl;
elegant87 2008-12-10
  • 打赏
  • 举报
回复

cout.width(8); //设置输出宽度为8
cout <<cout.fill('*') <<123 <<endl; //不够用*来填充
shyli 2008-12-10
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

void main()
{
cout <<"123456789" <<endl;
cout.width(8);
cout.fill('*');
cout <<123 <<endl;
}
hai040 2008-12-10
  • 打赏
  • 举报
回复
cout.fill('*')会返回设置'*'之前的fill字符' '
cout<<cout.fill('*')就会输出这个空格
因为已经设了width(8)fill('*'),所以输出"******* "
setwidth只对紧接着的输出有效,所以cout<<123宽度还是3
taodm 2008-12-10
  • 打赏
  • 举报
回复
cout <<cout.fill('*')
呵呵,你真的知道你自己在做什么?

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧