string转double

C++字符串与数值转换

Abstract

std::string为library type,而int、double为built-in type,两者无法利用(int)或(double)的方式互转,本文提出轉換的方式。

Introduction

使用環境:Visual C++ 9.0 / Visual Studio 2008

Method 1:

使用C的atoi()與atof()。

先利用c_str()轉成C string,再用atoi()與atof()。

string_to_double.cpp / C++

1/*

2(C) OOMusou 2008 http://oomusou.cnblogs.com

3

4Filename : string_to_double.cpp

5Compiler : Visual C++ 9.0 / Visual Studio 2008

6Description : Demo how to convert string to int (double)

7Release : 08/01/2008 1.0

8*/

9

10#include <iostream>

11#include <string>

12#include <cstdlib>

13

14usingnamespace std;

15

16int main() {

17 string s ="123";

18 double n = atof(s.c_str());

19 //int n = atoi(s.c_str());

20

21 cout << n << endl;

22}

Method 2:

利用stringstream

这里使用functon template的方式将std::string转int、std::string转double。

stringstream_to_double.cpp / C++

1

/*

2

(C) OOMusou 2006 http://oomusou.cnblogs.com

3

4

Filename : stringstream_to_double.cpp

5

Compiler : Visual C++ 8.0

6

Description : Demo how to convert string to any type.

7

Release : 11/18/2006

8

*/

9

#include <iostream>

10

#include <sstream>

11

#include <string>

12

13

template <class T>

14

void convertFromString(T &, const std::string&);

15

16

int main() {

17

std::string s("123");

18

19

// Convert std::string to int

20

int i =0;

21

convertFromString(i,s);

22

std::cout << i << std::endl;

23

24

// Convert std::string to double

25

double d =0;

26

convertFromString(d,s);

27

std::cout << d << std::endl;

28

29

return0;

30

}

31

32

template <class T>

33

void convertFromString(T &value, const std::string&s) {

34

std::stringstream ss(s);

35

ss >> value;

36

}

源文档 <http://www.cnblogs.com/oomusou/archive/2006/10/10/525647.html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值