浮点数到C,sprintf中的char数组

时间:2016-06-16 05:38:09

标签: c char printf

我一直在谷歌搜索,但我没有找到使用sprintf函数的简单浮点数char。到目前为止 - 这是我在我的小代码部分写的所有内容。问题是我总是得到0回报。

   int main()
   {
        float num_input[9];
        printf("Enter a real number: ");
        scanf("%f", &num_input);
        printf("%f", num_input);
        char str_num[9];
        sprintf(str_num, "%f", &num_input);
        printf(str_num);

        return 0;
    }

感谢所有帮助过的人!我终于看到了我做错了什么,学到了更多。最终编写的代码是:

float num_input[9];
printf("Enter a real number: ");
scanf("%f", &num_input);
char str_num[9];
int index = 0;
sprintf(str_num, "%f", num_input[index]);

1 个答案:

答案 0 :(得分:3)

sprintf(str_num, "%f", &num_input);错了。你应该使用类似的东西:

sprintf(str_num, "%f", num_input[index]);  /* 0 <= index < 9 */
/*                    ^          ^^^^^  */

此后保持手指交叉,str_num不会溢出。

请注意,"%f"系列函数的printf说明符应具有匹配的doublefloatfloat在默认参数后变为double推广)。

也许您应该对scanfprintf进行类似的修复:

scanf("%f", &num_input[0]);
printf("%f", num_input[0]);