如何在仅使用<;的情况下将字符串转换为double;iostream>&书信电报;字符串>&书信电报;cstdlib>&书信电报;标准h>;,及<;卡塞特>;? 我是C++新手,我的老师给我一个练习程序,它只是为了练习,而不是写作业,而且没有价值,所以不用担心。我要做的是从标准输入流中读取输入,并将它与任意的字符串进行比较,然后在项目中我必须把它转换成一个双。(因此,我不能直接把它当作替身来读)

如何在仅使用<;的情况下将字符串转换为double;iostream>&书信电报;字符串>&书信电报;cstdlib>&书信电报;标准h>;,及<;卡塞特>;? 我是C++新手,我的老师给我一个练习程序,它只是为了练习,而不是写作业,而且没有价值,所以不用担心。我要做的是从标准输入流中读取输入,并将它与任意的字符串进行比较,然后在项目中我必须把它转换成一个双。(因此,我不能直接把它当作替身来读),c++,string,C++,String,到目前为止,我可以将其读入并存储为字符串字符串输入;cin>>输入;,但是,我不知道如何将其转换为双精度。问题是我只能使用以下库: <iostream>, <string>, <cstdlib>, <stdio.h>, and <cassert>. 、和。 我在cstdlib中查看了atof,但它只接受char*而不是字符串。有什么建议吗 我在cstdlib中研究了atof,但它只接受char*而不是字符串 调用字符串将为其内容提供

到目前为止,我可以将其读入并存储为字符串
字符串输入;cin>>输入;
,但是,我不知道如何将其转换为双精度。问题是我只能使用以下库:

<iostream>, <string>, <cstdlib>, <stdio.h>, and <cassert>.
、和。
我在
cstdlib
中查看了
atof
,但它只接受
char*
而不是字符串。有什么建议吗

我在cstdlib中研究了atof,但它只接受
char*
而不是
字符串

调用字符串将为其内容提供一个
char const*
,并将其传递给C库函数,因此您可以这样做

 atof(s.c_str())  // where s is an std::string
我在cstdlib中研究了atof,但它只接受
char*
而不是
字符串

调用字符串将为其内容提供一个
char const*
,并将其传递给C库函数,因此您可以这样做

 atof(s.c_str())  // where s is an std::string

C++字符串类使用C字符数组作为其低级存储。可以使用这个

返回该字符数组。

< P> C++字符串类使用C字符数组作为其低级存储。 简单:

#include <string>

std::string s = "0.5";
double d = std::stod(s);
#包括
std::string s=“0.5”;
双d=std::stod(s);
简单:

#include <string>

std::string s = "0.5";
double d = std::stod(s);
#包括
std::string s=“0.5”;
双d=std::stod(s);
试试这个:

#include <sstream>

double a;
const std::string str = "1.0";
std::istringstream is(str);
is >> a;
#包括
双a;
常量std::string str=“1.0”;
std::istringstream是(str);
是>>a;
试试这个:

#include <sstream>

double a;
const std::string str = "1.0";
std::istringstream is(str);
is >> a;
#包括
双a;
常量std::string str=“1.0”;
std::istringstream是(str);
是>>a;

std::string
有一个方法
c_str()
可以为您提供
char const*
。但是您真的可以使用
atof()
,或者您应该知道如何处理字符串中的字母来计算double的值吗?使用
atof()
几乎不会教你任何东西。我被允许使用atof(),因为这只是一个更大的项目的一小部分
std::string
有一个方法
c_str()
可以给你
char const*
。但是你真的被允许使用
atof()
,或者您应该知道如何处理字符串中的字母来计算double的值吗?使用
atof()
几乎不会教您任何东西。我可以使用atof()因为这只是一个更大的项目+1的一小部分,但我们希望老师安装了一个C++11编译器。+1,但我们希望老师安装了一个C++11编译器。有什么方法可以告诉我字符串是0还是不是数字。我问这个问题是因为它说atof在无法解析
atof()时返回0
在出现错误时设置全局变量
errno
std::stod()
更易于使用。是否有任何方法可以判断字符串是0还是不是数字。我问这个问题是因为它说atof在无法解析
atof()时返回0
在出现错误时设置全局变量
errno
std::stod()
更易于使用。