c++字符串流使用
#include <sstream>
// 接收字符串
stringstream ss;
ss << "hello ";
ss << "world!";
//ss.str()获取string类对象
std::cout << ss.str() << std::endl;
//通过string类对象获取相对应的char* 指针
printf("%s\n",ss.str().c_str());
- 为字符流(stringstream)执行清零的操作是ss.str("")
- 对 string 类型的 s 而言,s.c_str():string ==》 char*
- 对流类型的 s 而言,s.str():stream ==》 string
详细使用例子:
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
stringstream ss; //定义字符流
ss<<"Bill_Gates.jpg 83 172 91 180"; //写字符流
string str=ss.str();//转换成字符对象
cout<<"str="<<str<<endl;
//打印字符流
cout<<ss.str()<<endl;
//把字符串分割,拆包
int left, right, up, down;
string image_name;
ss >> image_name >> left >> right >> up >> down;
cout << "Value:" << image_name << " " << left << " "
<< right << " " << up << " " << down << endl;
return 0;
}