我正在尝试将包含字符串的数组转换为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
stof
和atof
的变体给出了同样的错误。
答案 0 :(得分:4)
您使用的功能错误。要将std::string
转换为float
,您需要使用std::stof
而不是strtof
。
注意:std::stof
需要C ++ 11或更高版本。如果您没有,则可以使用atof
,但需要使用c_str()
。