gpt4 book ai didi

c - 如何简单地将float转换为c中的字符串?

转载 作者:太空狗 更新时间:2023-10-29 15:23:28 24 4
gpt4 key购买 nike

FILE * fPointer;
float amount = 3.1415;
fPointer =fopen("vending.txt","w");
fprintf(fPointer, amount);
printf("The file has been created for the first time and we added the value %f", amount);
fclose(fPointer);

我正在尝试将一个 float 保存到一个文本文件中,但是当我尝试运行这段代码时,它会触发一个编译错误,因为函数 fprintf 期望第二个参数是一个字符数组,所以我怎样才能将我的 float 转换为字符串以便我可以传递它,我有一个 C# 背景,其中可能有类似 .toString() 的东西,所以有没有类似的东西在 C 中直接将 float 转换为字符串?

最佳答案

如果可以使用C99标准,那么最好的办法就是使用snprintf函数。在第一次调用时,您可以将一个零长度 (null) 缓冲区传递给它,然后它将返回将浮点值转换为字符串所需的长度。然后根据返回的内容分配需要的内存,然后安全转换。

这解决了讨论过的 sprintf 问题 here .

例子:

int len = snprintf(NULL, 0, "%f", amount);
char *result = malloc(len + 1);
snprintf(result, len + 1, "%f", amount);
// do stuff with result
free(result);

关于c - 如何简单地将float转换为c中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41394063/

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