stringstream 对象
C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据互相转换的时候
字符串格式化 ss <<
- 过程:数字 -> stringstream对象 -> string
- 创建一个stringstream 对象,并通过运算符 ”<<“ 将数据传递给 stringstream 对象
- 再调用stringstream 类的函数str() 将对象所包含的内容赋给一个string对象
#include <iostream>
#include <sstream>
using namespace std;
int main(void)
{
double pi = 3.141592653589793;
float dollar = 1.00;
int dozen = 12;
int number = 35;
stringstream ss;
ss << "dozen: " << dozen << endl;
//显示小数
ss.setf(ios::fixed);
//显示2位小数
ss.precision(2);
ss << "dollar: " << dollar << endl;
//显示10位小数
ss.precision(10);
ss << "pi: " << pi << endl;
//按十六进制显示整数
ss.unsetf(ios_base::dec);
ss.setf(ios::hex);
ss << "number: " << number << endl;
string text = ss.str(); //格式化后的字符串
cout << text << endl;
return 0;
}
字符串格式转换 ss >>
- 过程:string -> stringstream对象 -> 数字
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
double dVal;
int iVal;
string str;
stringstream ss;
// string -> double
str = "123.456789";
ss << str;
ss >> dVal;
cout << "dVal: " << dVal << endl;
// string -> int
str = "654321";
ss.clear(); //注意 stringstream
ss << str;
ss >> iVal;
cout << "iVal: " << iVal << endl;
return 0;
}