c++ - C++中的cout浮点格式

标签 c++ ios format

std::ostream& operator<<(std::ostream& o, const mat4& m)
{
    o << std::setprecision(6) << std::fixed << std::right;
    const int w = 8;
    for (int i = 0; i < 4; i++)
    {
        int j = 4 * i;
        o << '[' << std::setw(w) << m[j] << ',' << std::setw(w) << m[1 + j] << ',' << std::setw(w)  <<  m[2 + j] << ',' << std::setw(w) << m[3 + j] << ']' << std::endl;
    }

    return o;
}

我想将我的数据打印为:

[-1.00000, 1.00000, 123.000,-23.0000]

这是我想要实现的:

  • 如果负号不存在则加一个空格
  • 字符串的大小是固定的,只显示最重要的值

我正在考虑使用 std::fixedstd::scientific 但不知道如何使用 iomanip 实现上述格式。这甚至可以用 iomanip 完成,还是我需要实现自己的方法?

最佳答案

你想要setiosflags(ios_base::showpoint)

#include <iomanip>
#include <iostream>

int main()
{
  double m[] = {-1, 1, 123, -23};
  const int w = 8;
  std::cout << std::setiosflags(std::ios_base::showpoint);
  std::cout << '[' << std::setw(w) << m[0] << ',' << std::setw(w) << m[1] << ',' << std::setw(w)  <<  m[2] << ',' << std::setw(w) << m[3] << ']' << std::endl;
}

结果是:

[-1.00000, 1.00000, 123.000,-23.0000]

关于c++ - C++中的cout浮点格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578751/

相关文章:

ios - 在 swift 3 转换后,无法通过 Xcode 启动进程 10061 的 iOS 应用程序任务失败

ios - 网页 View :How to detect if I am on the original web page and execute a certain method

javascript - karma/jasmine console 更详细的测试结果

date - 如何编写表达式将 ssrs 中的 yyyymm 转换为 mm-yyyy?

c++ - aws-cpp-sdk : How to IoT publish using MQTT over Web Socket (in c++)

C++程序计算所有五位奇数的总和?

c++ - 如何使用 + 运算符连接字符串

iphone - 集成Google API目标库客户端库时的链接器错误

C++ 析构函数 - 继承上下文中的显式调用

objective-c - 在 ObjC(iOS) 中将文本从 "HELLO, WORLD. HOW ARE YOU?"格式化为 "Hello, world. How are you?"?