【发布时间】:2014-03-24 22:39:26
【问题描述】:
我有一个 C++ 程序将输出写入iostream,但是我需要经常在不同的数字样式之间切换,例如科学与非科学之间。这是我正在查看的内容:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << setw(2) << 1 << ' ' << setw(4) << 0.25 << ' ';
cout.width(6);
cout.setf(ios::scientific, ios::floatfield);
cout << 3.0 << ' ';
cout.unsetf(ios::floatfield);
cout << 4.0 << ' ';
cout.setf(ios::scientific, ios::floatfield);
cout << 3.0 << ' ';
cout.unsetf(ios::floatfield);
cout << 4.0 << endl;
return 0;
}
这种荒谬是必要的吗?看起来很可怕。作为比较,这在 C 语言中看起来更加合理:
#include <stdio.h>
int main()
{
printf("%2d %4g %6e %6g %6e %6g\n", 1, 0.25, 3.0, 4.0, 3.0, 4.0);
return 0;
}
有什么方法可以在 C++ 中使用iostream 使其更易于阅读?
【问题讨论】:
标签: c++ iostream number-formatting scientific-notation