在c++中使用std::istringsteam将字符串转换为浮点数

Converting a string to float using std::istringsteam in C++

本文关键字:字符串 转换 浮点数 istringsteam std c++      更新时间:2023-10-16

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

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:usersadministratordesktopTestmain.cpp    12

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

谢谢

很可能你没有包括所有相关的标题:

#include <string>
#include <sstream>

下面是一个示例,显示了当包含适当的头文件时,代码将编译。

一般来说,你不应该依赖于间接地从另一个标准头文件中包含必要的标准头文件(当然,除非这种包含在标准本身中被记录)。

还要注意,您正在创建一个临时字符串流,它将在表达式 求值结束时被销毁。
std::istringstream(stringNum) >> value

你可以这样创建一个流对象:

std::istringstream ss(stringNum);
ss >> value;
// Here you can use ss again...