您好我在使用C ++中的ostream对象格式化输出时出现问题。
ostream& write(ostream& os)
{
os << os.fill('*') << os.width(10);
return os;
}
这是输出的样子:
********* 0
我正在尝试在没有尾随*
的情况下实现10 0
s。
尾随0
的原因是什么?
我是否正确使用宽度和填充功能?
答案 0 :(得分:3)
正如ios::base::width
中所述:
返回值:调用前字段宽度的值。
所以你正在做的是fill
你的ostream
和*
,然后在调用0
之前打印字段的值。
还有一件事你可能没有注意到0
之前,你有另一个字符,因为std::ios::fill
返回值:
返回值:调用前填充字符的值。
试试这个:
ostream& write(ostream& os)
{
os.fill('*');
os.width(10);
return os;
}