C++ 无法将数字字符串从字符串数组转换为浮点
我正在尝试将包含字符串的数组转换为浮点。索引[j][2]处的每个字符串都将是一个数字,必须将其转换为浮点数。i是一个int,它包含数组的“行”总数。首先,我需要将其乘以8,然后除以10,然后将其转换为字符串并存储回数组。我想以后再把它转换成一个浮点数,但我需要一个每个浮点数所属索引的记录。因此,我需要一种可靠的方法将字符串转换为浮点数。以下操作失败,并显示此错误消息:C++ 无法将数字字符串从字符串数组转换为浮点,c++,string,type-conversion,C++,String,Type Conversion,我正在尝试将包含字符串的数组转换为浮点。索引[j][2]处的每个字符串都将是一个数字,必须将其转换为浮点数。i是一个int,它包含数组的“行”总数。首先,我需要将其乘以8,然后除以10,然后将其转换为字符串并存储回数组。我想以后再把它转换成一个浮点数,但我需要一个每个浮点数所属索引的记录。因此,我需要一种可靠的方法将字符串转换为浮点数。以下操作失败,并显示此错误消息: for (int j = 0; j < i; j++) { float wow = strtof(array[j]
for (int j = 0; j < i; j++) {
float wow = strtof(array[j][2]);
array[j][3] = (wow + float(i/10)*8);
}
for(int j=0;j
错误:
无法将参数“1”的“std::string{aka std::basic_string}”转换为“const char*”,将其转换为“float strof(const char*,char**)”
strof
的变体,如stof
和atof
给了我相同的错误。您使用了错误的函数。要将std::string
转换为float
,需要使用notstrof
注意:
std::stof
需要C++11或更高版本。如果你没有,你可以使用atof
,但是你需要使用c_str()
,这里简单的答案是使用array[j][2].c_str()
,并且有很多关于类似函数调用的问题。给出了错误消息,还有一个“真实”的副本,我没有c++11。但是,当我使用float wow=strof(array[j][2].c_str())
时,它说参数太少了。@Reginsmal我的答案有一个错误。如果没有C++11,则应使用atoffloat wow=atof(数组[j][2].c_str())