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
4 Filename : string_to_double.cpp
5 Compiler : Visual C++ 9.0 / Visual Studio 2008
6 Description : Demo how to convert string to int (double)
7 Release : 08/01/2008 1.0
8 */
9
10 #include <iostream>
11 #include < string >
12 #include <cstdlib>
13
14 using namespace std;
15
16 int 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
return 0;
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 >
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
