1

您好,我在使用 C++ 中的 ostream 对象格式化输出时遇到问题。

ostream& write(ostream& os)
{
    os << os.fill('*') << os.width(10);
    return os;
}

这是输出的样子:

********* 0

我试图在*没有尾随的情况下达到 10 秒0

拖尾的原因是什么0

我是否错误地使用了宽度和填充功能?

4

1 回答 1

2

正如它所说ios::base::width

返回值:调用前的字段宽度值。

所以你正在做的是fill你的ostreamwith *s 然后在调用 which is 之前打印字段的值0

还有一件事你可能之前没有注意到0,你有另一个字符,那是因为std::ios::fill返回值:

返回值:调用前填充字符的值。

尝试这个 :

ostream& write(ostream& os)
{
    os.fill('*');
    os.width(10);
    return os;
}
于 2018-04-17T02:46:40.970 回答