我对C ++比较陌生,想把char字符串转换为双精度数。这些字符串将具有不同的长度,但它们的长度将始终是已知的。例如:
我有一个char*
字符串,名为" myValue"看起来像"0.5 0.4 1 5"
,并且已知长度为length=4
。
我想将此字符串转换为这样的双精度矢量:
vector<double> Param
并给我以下输出:
Param[0]=0.5, Param[1]=0.4, Param[2]=1, Param[3]=5
答案 0 :(得分:3)
您可以使用std::stringstream
执行此操作。我们将字符串存储到stringstream
中,然后使用while循环从中提取double
部分。
std::stringstream ss;
std::vector<double> data;
char numbers[] = "0.5 0.4 1 5";
ss << numbers;
double number;
while (ss >> number)
data.push_back(number);
由于我们使用的是标准容器,我建议您使用std::string
代替char []
然后我们可以更改
char numbers[] = "0.5 0.4 1 5";
要
std::string numbers = "0.5 0.4 1 5";