无法将字符串数组中的数字字符串转换为float

时间:2015-11-19 17:01:14

标签: c++ string type-conversion

我正在尝试将包含字符串的数组转换为float。索引[j] [2]中的每个字符串都是一个必须转换为浮点数的数字。我是一个int,它包含数组的“行”总数。首先,我需要将它乘以8然后除以10,然后将其转换为字符串并将其存储回数组中。我想稍后再将它转换为浮点数,但我需要记录每个浮点所属的索引。所以我需要一种将字符串转换为浮点数的可靠方法。以下失败并给出了此错误消息:

for (int j = 0; j < i; j++) {
    float wow = strtof(array[j][2]);
    array[j][3] = (wow + float(i/10)*8);
}

错误:

  

无法将'std :: string {aka std :: basic_string}'转换为'const char *'以将参数'1'转换为'float strtof(const char *,char **)'

strtof stofatof的变体给出了同样的错误。

1 个答案:

答案 0 :(得分:4)

您使用的功能错误。要将std::string转换为float,您需要使用std::stof而不是strtof

注意:std::stof需要C ++ 11或更高版本。如果您没有,则可以使用atof,但需要使用c_str()