如何在创建字符串之前测量字符串的长度

时间:2014-10-23 08:29:35

标签: c++ c++11

我得到了一个数字列表(intdouble s),我需要将其作为字符串导出到缓冲区。必须事先保留缓冲区。出于速度和大小的原因,我不想创建字符串,测量其大小,然后再次将其创建到缓冲区中。不,使用过的系统不允许创建整个字符串并在之后复制它。

1 个答案:

答案 0 :(得分:2)

对于整数,您需要floor(log10(number)) + 1个十进制数字(根据需要调整为0并签名)。

对于双打,情况有点复杂 - 这实际上取决于你想要如何表示它们。最重要的是,你是否介意在小数点后跟踪0?科学记数法是一种选择吗?

解决此问题的一种方法是:您需要17 decimal digits after the decimal point在字符串中表示IEEE double,以便可以明确地重建它。因此,请始终保留这17个数字加上句点,并使用上面的整数公式作为整数部分。