C/C++ std::string 格式化 解析
用以下三个接口
istringstream : 用于执行C风格字符串的输入操作。
ostringstream : 用于执行C风格字符串的输出操作。
stringstream : 同时支持C风格字符串的输入输出操作。
使用前引用头文件
#include <string>
#include <iostream>
#include <sstream>
//istringstream 用于执行C风格字符串的输入操作
void test_istringstream()
{
//istringstream 只支持 >> 操作符
std::string str = "hello world to";
std::istringstream is(str);
//把字符串中以空格隔开的内容提取出来
std::string out;
while (is >> out)
std::cout << out << std::endl;
std::cout << "\r\n" << std::endl;
is.str("");
}
//ostringstream 用于执行C风格字符串的输出操作
void test_ostringstream()
{
//ostringstream 只支持 << 操作符
std::ostringstream os;
os << "ostringstream" << 858858;
std::cout << os.str() << "\r\n" << std::endl;
os.str("");//清空之前的内容 //oss.clear();//并不能清空内存
//浮点值连接
double tmp = 3.1415926;//浮点数转换限制
os.precision(3);
os.setf(std::ios::fixed);//将浮点数的位数限定为小数点之后的位数
os << tmp;
std::cout << os.str() << "\r\n" << std::endl;
os.str("");
}
//stringstream 同时支持C风格字符串的输入输出操作
void test_stringstream()
{
//输入
std::stringstream ss;
ss << "this is test exe " << 222;
std::cout << ss.str() << "\r\n" << std::endl;
//输出
std::string out;
while (ss >> out)
{
std::cout << out.c_str() << std::endl;
}
std::cout << "\r\n" << std::endl;
ss.str("");
}