无法将字符串数组中的数字字符串转换为浮点值
Cannot convert a numerical string from a string array into a float
我正在尝试将一个包含字符串的数组转换为浮点值。索引[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**)"
像stof
和atof
这样的strtof
的变化给了我相同的误差。
您使用了错误的函数。要将std::string
转换为float
,需要使用std::stof
而不是strtof
。
注意:std::stof
需要C++11或更高版本。如果您没有,您可以使用atof
,但您需要使用c_str()
。
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如何将这个std::字符串转换为std::基本字符串
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在C++中将十六进制字符串转换为文本数据
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何从字符串转换为双精度*
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何在C++中将 Python 字符串转换为其转义版本?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 如何将整数字符串转换为整数的二维向量?
- 使用 "stringstream " 将字符串转换为整数
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 将文件复制到自定义位置,存在字符串转换问题
- 将ANSI C字符串转换为UNICODE
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在C++中将字符串转换为双精度,而无需科学记数法
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何在C++中将字符串转换为双精度?
- 将字符串转换为无符号字符数组/字节数组