您好,我在C++中使用 ostream 对象格式化输出时遇到问题。
ostream& write(ostream& os)
{
os << os.fill('*') << os.width(10);
return os;
}
输出如下所示:
********* 0
我正在尝试在没有尾随0
的情况下实现 10 *
秒。
尾随0
的原因是什么?
我是否错误地使用了宽度和填充函数?
正如它在ios::base::width
中所说:
返回值:调用前字段宽度的值。
因此,您正在做的是用*
s fill
ostream
,然后在调用之前打印字段的值,该字段0
。
还有一件事你可能没有注意到,在0
之前,你还有另一个字符,那是因为std::ios::fill
返回值:
返回值:调用前填充字符的值。
试试这个:
ostream& write(ostream& os)
{
os.fill('*');
os.width(10);
return os;
}