很早以前get√的技能,重新复习一下:-)
下面是主要的代码:
...
#include <sstream> //必须包含的头文件
...
stringstream stream; //声明一个stringstream变量
int n;
string str;
//string转int
stream << "1234"; //向stream中插入字符串"1234"
stream >> n; //从stream中提取刚插入的字符串"1234" 并将其赋予变量n完成字符串到int的转换
cout << n << endl;
stream.clear(); //同一stream进行多次转换应调用成员函数clear
//int转string
stream << 1234; //向stream中插入整型数1234
stream >> str; //从steam中提取刚插入的整型数 并将其赋予变量str完成整型数到string的转换
cout << str << endl;
同理如char和double型等等的转化.
不过注意一点,当不符合格式时:
stringstream stream;
int n;
char str[100];
stream << "1234.12";
stream >> n;
cout << n << endl;
stream.clear();
stream << 1234.12;
stream >> str;
cout << str << endl;
输出结果为:
1234
.121234.12
因为流输入是自动匹配格式的,所以小数点及小数点后面的部分就流向下一个.
最重要的事:
如果stringstream如果有多个转换时一定一定一定要记得清空,即stream.clear()
网友评论