gpt4 book ai didi

c++ - 如何将填充零添加到写入 ofstream 的数字?

转载 作者:太空狗 更新时间:2023-10-29 23:31:08 25 4
gpt4 key购买 nike

我正在尝试将数值写入与列对齐的文本文件。我的代码如下所示:

ofstream file;
file.open("try.txt", ios::app);
file << num << "\t" << max << "\t" << mean << "\t << a << "\n";

它有效,除非值的位数不同,否则它们不会对齐。我想要的是以下内容:

1.234567  ->  1.234
1.234 -> 1.234
1.2 -> 1.200

最佳答案

这取决于你想要什么格式。对于固定的小数位,像这样的东西:

class FFmt
{
int myWidth;
int myPrecision;
public:
FFmt( int width, int precision )
: myWidth( width )
, myPrecision( precision )
{
}
friend std::ostream& operator<<(
std::ostream& dest,
FFmt const& fmt )
{
dest.setf( std::ios::fixed, std::ios::floatfield );
dest.precision( myPrecision );
dest.width( myWidth );
}
};

应该可以解决问题,所以您可以这样写:

file << nume << '\t' << FFmt( 8, 2 ) << max ...

(或您想要的任何宽度和精度)。

如果您要进行任何浮点运算,您可能应该你拿走的套件中有这样的操纵器(尽管在很多情况下,它会更适合使用逻辑操纵器,以逻辑命名它格式化的数据的含义,例如度、距离等)。

恕我直言,扩展操纵器也很值得,这样它们就可以节省格式化状态,并在完整表达式的末尾恢复它。(我所有的操纵器都派生自处理这个的基类。)

关于c++ - 如何将填充零添加到写入 ofstream 的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8985715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com