gpt4 book ai didi

C++ - 如何重置输出流操纵器标志

转载 作者:IT老高 更新时间:2023-10-28 22:07:04 26 4
gpt4 key购买 nike

我有一行代码在我的输出中将填充值设置为“-”字符,但需要将 setfill 标志重置为其默认的空白字符。我该怎么做?

cout << setw(14) << "  CHARGE/ROOM" << endl;
cout << setfill('-') << setw(11) << '-' << " " << setw(15) << '-' << " " << setw(11) << '-' << endl;

我认为这可能有效:

cout.unsetf(ios::manipulatorname) // Howerver I dont see a manipulator called setfill

我是不是走错了路?

最佳答案

看看Boost.IO_State_Savers ,为 iostream 的标志提供 RAII 样式的范围保护。

例子:

#include <boost/io/ios_state.hpp>

{
boost::io::ios_all_saver guard(cout); // Saves current flags and format

cout << setw(14) << " CHARGE/ROOM" << endl;
cout << setfill('-') << setw(11) << '-' << " " << setw(15) << '-' << " " << setw(11) << '-' << endl;
// dtor of guard here restores flags and formats
}

更专业的守卫(仅用于填充、宽度或精度等)也在库中。有关详细信息,请参阅文档。

关于C++ - 如何重置输出流操纵器标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com