在C++中如何进行各种数据类型的转换呢?比如整数转字符串, 字符串转换为整数? 在ANSI C中我们通常采用atoi或是itoa函数, 或者使用scannf, snprintf等方法.在C++中其实也有它独特的方法.下面给出相应的代码仅供参考:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
void num2str(double i, string& s){
stringstream ss;
ss << i;
s = ss.str();
}
int str2num(string& s){
int num;
stringstream ss(s);
ss >> num;
return num;
}
int main(int argc, char* argv[]){
string str = "123.14";
int v = str2num(str);
cout << v << endl;
double d = 3.1415926;
string s;
num2str(d, s);
cout << s << endl;
return 0;
}
运行结果截图
下面的代码片段直接来自参考文献[1]:
<pre name="code" class="cpp">#include <sstream>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[]){
int val1 = 512, val2 = 1024;
//int ===> string
ostringstream format_message;
format_message << "val1: " << val1 << "\n" << "val2: " << val2 << "\n";
cout << format_message.str() << endl;
//string ===> int
istringstream input_istring(format_message.str());
string dump;
input_istring >> dump >> val1 >> dump >> val2;
cout << val1 << " " << val2 << endl;
return 0;
}
运行结果截图
参考文献
[1].C++ Primer 第四版中文版 p301