c++ - Cpp 98 标准中的 std::cout 格式

标签 c++ c++11 hex iostream fixed

以下每项都涉及一种独特的 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/

相关文章:

c++ - 为什么没有像 pthread_mutex_t & std::mutex 那样的 std::等价于 pthread_spinlock_t?

c++ - 了解这个可变参数模板函数是如何工作的

c++ - 在 C++ 中执行复杂的 shell 命令的正确方法是什么?

c++ - 合并功能以获得更清晰的代码?

C++ 在映射中存储派生对象

c - 如何在 C 中将包含 UTF-8 十六进制值的字符串转换为 wchar?

c++ - 将 Char 转换为其 Int 表示

c++ - 如何在 SOCI 中注册数据库故障转移回调?

templates - 带有模板参数的 C++0x lambdas?

c++ - 在 C++ 中将 BSTR 十六进制字符串转换为 BYTE *