2

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

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

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

谢谢

4

1 回答 1

5

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

#include <string>
#include <sstream>

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

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

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

std::istringstream(stringNum) >> value

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

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

// Here you can use ss again...
于 2013-06-13T14:14:52.200 回答