我一直在谷歌搜索,但我没有找到使用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]);
答案 0 :(得分:3)
sprintf(str_num, "%f", &num_input);
错了。你应该使用类似的东西:
sprintf(str_num, "%f", num_input[index]); /* 0 <= index < 9 */
/* ^ ^^^^^ */
此后保持手指交叉,str_num
不会溢出。
请注意,"%f"
系列函数的printf
说明符应具有匹配的double
或float
(float
在默认参数后变为double
推广)。
也许您应该对scanf
和printf
进行类似的修复:
scanf("%f", &num_input[0]);
printf("%f", num_input[0]);