【发布时间】:2015-08-10 14:36:27
【问题描述】:
我是 C 中处理数组的新手,我正在尝试存储这样的字符串:
//x, y, p are floats
("X: %f\nY: %f\nP: %f", x, y, p)
到一个数组中。
我不知道如何读取值x、y、p,以便数组将其存储为单个字符串。
有可能吗?如果没有,我该怎么做?
更新
显然人们不明白我的意思。
上面的不是我的具体代码,是我要存储的字符串;一个例子。
printf("X: %f\nY: %f\nP: %f", x, y, p);
在命令中打印时等于:
X: 10.000000
Y: 12.000000
P: 32.000000
这就是我希望将其存储在数组中的方式,而是将其识别为 4 个参数,而不是 1 个。
- 字符串 = "X: %f\nY: %f\nP: %f"
- x
- 是
- p
如何让它将其识别为一个参数?
【问题讨论】:
-
数组在哪里,字符串在哪里?
-
use sprintf? 记得确保输出缓冲区足够大
-
@Sourav Ghosh FWIW:
"X: %f\nY: %f\nP: %f"是一个字符串和一个数组。然而在 OP 的情况下,目标字符串可能是隐含的。 -
simple use of sprintf c 的可能重复项——如果确认重复项,请使用此链接。上一个非常狭窄,关于某些版本的 gcc 中的错误
-
形成一个大小合适的缓冲区并打印使用
int n = snprintf(NULL, 0, "X: %f\nY: %f\nP: %f", x, y, p); char buf[n+1]; snprintf(buf, sizeof buf, "X: %f\nY: %f\nP: %f", x, y, p);