在C++中使用std :: istringsteam将字符串转换为float

Dan*_*nny 2 c++ string floating-point

我一直在尝试将一个简单的字符串转换为浮点数,但我没有运气.这就是我现在所拥有的:

int main()
{
    float value;
    std::string stringNum = "0.5";
    std::istringstream(stringNum) >> value;

    return 0
}
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

Error   2   error C2440: '<function-style-cast>' : cannot convert from 'std::string' to 'std::istringstream'    c:\users\administrator\desktop\Test\main.cpp    12
Run Code Online (Sandbox Code Playgroud)

谁能给我一些关于如何简单地将字符串转换为浮点数的指导?

谢谢

And*_*owl 5

您很可能没有包含所有相关标题:

#include <string>
#include <sstream>
Run Code Online (Sandbox Code Playgroud)

这是一个实时示例,显示您的代码在包含适当的标头时进行编译.

通常,您不应该依赖于从另一个标准头文件中间接包含必要的标准头文件(当然,除非在标准本身中记录了这种包含).

另请注意,您正在创建一个临时字符串流,该字符串流将在表达式评估结束时销毁

std::istringstream(stringNum) >> value
Run Code Online (Sandbox Code Playgroud)

您可能希望以这种方式创建流对象:

std::istringstream ss(stringNum);
ss >> value;

// Here you can use ss again...
Run Code Online (Sandbox Code Playgroud)