科学 ofstream 中的指数只有 2 位数

Ian*_*uss 5 c++ scientific-notation

因此,根据 cplusplus.com,当您通过以下方式将输出流的格式标志设置为科学记数法时

of.setf(ios::scientific)

您应该在指数中看到 3 位加号和一个符号。但是,我的输出中似乎只有 2 个。有任何想法吗?使用 GCC 4.0.1 在 Mac OS 上编译。

这是我正在使用的实际代码:

of.setf(ios::scientific);
of.precision(6);
for (int i=0;i<dims[0];++i) {
    for (int j=0;j<dims[1];++j) {
    of << setw(15) << data[i*dims[1]+j];                    
    }
    of << endl;
}
Run Code Online (Sandbox Code Playgroud)

和一个示例输出行:

   1.015037e+00   1.015037e+00   1.395640e-06  -1.119544e-06  -8.333264e-07
Run Code Online (Sandbox Code Playgroud)

谢谢

Dav*_*veR 4

我相信 cplusplus.com 是不正确的,或者至少正在记录一个特定的实现 - 我看不到任何其他在线文档专门说明显示的指数位数 - 我什至在 C++ 规范中找不到它。

编辑

C++ 标准库:教程和参考没有明确说明指数位数;但它的所有示例都显示两个指数数字。