C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream头文件。
创新互联是一家集网站建设,萧县企业网站建设,萧县品牌网站建设,网站定制,萧县网站建设报价,网络营销,网络优化,萧县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。istringstream类是从istream(输入流类)和stringstreambase(c++字符串流基类)派生而来,ostringstream是从ostream(输出流类)和stringstreambase(c++字符串流基类)派生而来,stringstream则是从iostream(输入输出流类)和和stringstreambase(c++字符串流基类)派生而来。
由于sstream使用string对象代替字符数组,避免缓冲区溢出的危险;其次,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。相比c库的数据类型转换,sstream更加安全、自动和直接。
使用样例:
#include#include#includeint main()
{std::stringstream ss;
std::string str1, str2;
int iv = 10;
// 将int类型的值放入输入流中。
ss<< iv<< " is a test number.";
// 从sstream中抽取前面插入的int类型的值,赋给string类型。
// 以空格为分隔符。
ss >>str1 >>str2;
std::cout<< "str1: "<< str1<< std::endl;
std::cout<< "str2: "<< str2<< std::endl;
// 将sringstream类型转为string类型,以实现字符串拼接方法。
std::cout<< "ss.str(): "<< ss.str()<< std::endl;
// 清空sstream的方法。
// 在进行多次类型转换前,必须先运行clear()
ss.str("");
ss.clear();
bool bl = true;
int it = 0;
ss<< bl;
ss >>it;
std::cout<< "(bool->int)it: "<< it<< std::endl;
ss.clear();
std::string str3 = "10";
ss<< str3;
ss >>it;
std::cout<< "(string->int)it: "<< it<< std::endl;
}
输出结果:
str1: 10
str2: is
ss.str(): 10 is a test number.
(bool->int)it: 1
(string->int)it: 10
参考:
- c++ sstream
- C++的sstream标准库详细介绍
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧