C ++ stod函数等价

时间:2015-05-25 23:48:28

标签: c++

我的一个朋友给我发了他的节目。他使用" stod" 函数将字符串转换为double。有没有其他可能做这样的事情?

我的编译器显示错误" stod未在此范围内声明"

我已加入#include <string> #include <cstdlib>,但一切都没有改变。

我的编译器没有使用C ++ 11功能。顺便说一句,该程序是作为学校项目准备的,没有使用C ++ 11的目的。

2 个答案:

答案 0 :(得分:4)

std::atof()是从C语言移交的快速选项,您必须包含<cstdlib>才能使用它。

否则你可以使用std :: stringstream来处理它。

    #include<sstream> 

    std::string value="14.5";
    std::stringstream ss;
    ss<< value;

    double d=0.0;
    ss>>d;

答案 1 :(得分:0)

将字符串转换为double的快速而肮脏的方法是

#include <sstream>
#include <string>

std::string text;
double value;
std::stringstream ss;
ss << text;
ss >> value;

但请注意验证正确转换所需的错误检查

编辑:您需要使用

测试字符串流是否失败
if (ss.fail()) { /* error */ }

来源http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/