21xrx.com
2024-12-22 22:53:09 Sunday
登录
文章检索 我的文章 写文章
C++中string转换为double类型
2023-07-08 15:56:54 深夜i     --     --
C++ string 转换 double类型

在C++编程中,我们经常会遇到将string类型转换为double类型的需求。这个需求在对用户输入的数据进行处理时尤其常见。下面我们介绍一下如何在C++中将string类型转换为double类型。

首先,C++提供了一个函数stod,用于将string类型转换为double类型。示例代码如下:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "3.1415";

  double pi = stod(str);

  cout << "pi: " << pi << endl;

  return 0;

}

在这个示例代码中,我们使用了stod函数将字符串"3.1415"转换为了浮点数类型的pi,并打印了pi的值。

需要注意的是,如果原始的字符串无法正确转换为double类型,stod函数将抛出一个invalid_argument异常。因此,在进行字符串转换时,我们应当确保字符串是符合正确的double类型格式的。

如果我们需要将含有多个浮点数的字符串进行转换,我们可以使用istringstream流类来实现。例如:


#include <iostream>

#include <string>

#include <sstream>

using namespace std;

int main()

{

  string str = "1.23, 4.56, -7.89";

  double nums[3];

  istringstream iss(str);

  for (int i = 0; i < 3; i++)

  {

    iss >> nums[i];

    iss.ignore();

  }

  for (int i = 0; i < 3; i++)

  {

    cout << "num[" << i << "]: " << nums[i] << endl;

  }

  return 0;

}

在这个示例代码中,我们使用了istringstream流类来从字符串中读取三个浮点数,并将这三个浮点数存储到nums数组中。因为字符串中的每个浮点数都是以逗号分隔的,我们在从字符串中读取每个浮点数时,需要使用ignore函数忽略逗号字符。

总结来说,C++中进行string类型转换为double类型非常简单,我们可以使用stod函数或istringstream流类来实现。但是,在进行字符串转换时,我们需要确保字符串是符合正确的double类型格式的,避免程序出现异常。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复