以下每项都涉及一种独特的 ostream
格式。如何将其恢复为默认值?
#include <iostream>
int main()
{
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << '\n';
std::cout << "scientific:\n" << std::scientific;
/*Cpp 11 standard only*/
std::cout << " hexfloat: " << std::hexfloat << 0.01 << '\n';
"The number 0.01 in default: " << std::defaultfloat << 0.01; }
}
如:
std::set_default?;
还有我该如何表现
hexfloat and defaultfloat
在 Cpp 98 标准中?
还有 setwidth 和 setprecision 之间的技术区别是什么?
最佳答案
默认的互斥选项std::fixed
, std::scientific
, std::hexfloat
and std::defaultfloat
是的,你得到了 std::defaultfloat
。
std::setprecision
的默认值是 6
。
std::setw
的确切效果必须分别查找每个流插入器。
为 C++11 之前的版本替换 std::defaultfloat
非常简单:
std::ios_base& defaultfloat(std::ios_base& str) {
str.unsetf(std::ios_base::floatfield);
return str;
}
编写 std::hexfloat
同样容易,但流运算符不知道如何处理这些标志。
修复起来并非易事。
关于c++ - Cpp 98 标准中的 std::cout 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182025/