我的一个朋友给我发了他的节目。他使用" stod" 函数将字符串转换为double。有没有其他可能做这样的事情?
我的编译器显示错误" stod未在此范围内声明"
我已加入#include <string> #include <cstdlib>
,但一切都没有改变。
我的编译器没有使用C ++ 11功能。顺便说一句,该程序是作为学校项目准备的,没有使用C ++ 11的目的。
答案 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/