无法将字符串数组中的数字字符串转换为浮点值

Cannot convert a numerical string from a string array into a float

本文关键字:字符串 转换 数字字符 数组 数字      更新时间:2023-10-16

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

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

错误:

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

stofatof这样的strtof的变化给了我相同的误差。

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

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