C++-sstream标准库(串流控制)-创新互联

C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream头文件。

创新互联是一家集网站建设,萧县企业网站建设,萧县品牌网站建设,网站定制,萧县网站建设报价,网络营销,网络优化,萧县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
  1. istringstream类用于执行串流的输入操作。
  2. ostringstream类用于执行串流的输出操作。
  3. strstream类同时可以支持串流的输入输出操作。

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

参考:

  1. c++ sstream
  2. C++的sstream标准库详细介绍

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:C++-sstream标准库(串流控制)-创新互联
文章转载:http://myzitong.com/article/cejped.html