作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一行代码在我的输出中将填充值设置为“-”字符,但需要将 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/
我是一名优秀的程序员,十分优秀!