如何将浮点数写入 C 字符串?

How to write floats to a C-string?

我刚开始使用 C 中的数组,我正在尝试像这样存储一个字符串:

//x, y, p are floats
("X: %f\nY: %f\nP: %f", x, y, p)

放入数组。

我不知道如何读取值 xyp,以便数组将其存储为单个字符串。

可能吗?如果没有,我应该怎么做?

更新

所以显然人们不明白我的意思。

以上不是我的具体代码,是我要存储的字符串;一个例子。

printf("X: %f\nY: %f\nP: %f", x, y, p); 

在命令中打印时等于:

X: 10.000000
Y: 12.000000
P: 32.000000

这就是我希望将它存储在数组中的方式,相反,它将它识别为 4 个参数,而不是 1 个。

  1. 字符串 = "X: %f\nY: %f\nP: %f"
  2. x
  3. y
  4. p

如何让它识别为一个参数?

您可以使用 sprintf or snprintf。这里 array 是您的 C 字符串数组 (char *array[n]):

array[x] = malloc(64);
snprintf(array, 64, "X: %f\nY: %f\nP: %f", x, y, p);

snprintf 更安全,因为您可以设置它应该写入的最大字符数。

我在这里选择了幻数64,但是你应该确保分配足够的内存来存储结果字符串和转换后的浮点数。