我一直在尝试将一个简单的字符串转换为 float ,但我没有成功。这就是我目前所拥有的:
int main()
{
float value;
std::string stringNum = "0.5";
std::istringstream(stringNum) >> value;
return 0
}
但我收到此错误:
Error 2 error C2440: '<function-style-cast>' : cannot convert from 'std::string' to 'std::istringstream' c:\users\administrator\desktop\Test\main.cpp 12
任何人都可以在这里给我一些关于如何简单地将字符串转换为 float 的指导吗?
谢谢
最佳答案
很可能您没有包含所有相关 header :
#include <string>
#include <sstream>
这是一个live example显示当包含适当的 header 时您的代码可以编译。
一般来说,您不应该依赖于从另一个标准头文件间接包含必要的标准头文件(当然,除非该包含记录在标准本身中)。
另请注意,您正在创建一个临时字符串流,该字符串流将在表达式求值结束时被销毁
std::istringstream(stringNum) >> value
您可能想以这种方式创建流对象:
std::istringstream ss(stringNum);
ss >> value;
// Here you can use ss again...
关于c++ - 在 C++ 中使用 std::istringsteam 将字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089337/