%g 浮点表示的最大字符串长度是多少?

问题描述 投票:0回答:1

堆栈分配的字符串需要有多大才能以 %g 格式存储任何 float/double?

int main()
{
    float f;
    double d;
    
    char f_str[ ?? ];
    char d_str[ ?? ];
    
    sprintf(f_str, "%g",  f);
    sprintf(d_str, "%lg", d);
}
c string floating-point printf
1个回答
1
投票

您可以使用 snprintf() 来计算您的特定值所需的确切长度

int f_len = snprintf(NULL, 0, "%g", f);
char f_str[f_len + 1]; // or malloc...
sprintf(f_str, "%g", f); // it fits
© www.soinside.com 2019 - 2024. All rights reserved.