C++中 ostringstream istringstream

C++中 ostringstream istringstreamC++流都很类似,比如:输入输出流就是cincout从控制台读入写出。字符串流也类似,只是重定向到字符串。istringstream是从字符串读,ostringstream是写到字符串中去,用法跟cincout完全一样。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstre…

大家好,又见面了,我是你们的朋友全栈君。

 

C++ 流都很类似, 比如:输入输出流 就是cin cout 从控制台读入写出。

字符串流也类似,只是重定向到字符串。istringstream 是从字符串读, ostringstream是写到字符串中去,用法跟cin cout完全一样。

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

istringstream类是从istream和stringstreambase派生而来,ostringstream是从ostream和 stringstreambase派生而来, stringstream则是从iostream类和stringstreambase派生而来。

  他们的继承关系如下图所示:

C++中 ostringstream istringstream

istringstream是由一个string对象构造而来,用istringstream类从一个string对象读取字符。 

#i nclude <iostream> 
#i nclude <sstream> 
using namespace std; 
int main()   
{ 
istringstream istr; 
istr.str("1 56.7"); 
    //上述两个过程可以简单写成 istringstream istr("1 56.7"); 
    cout << istr.str()<<endl; 
    int a; 
    float b; 
istr>>a;  //输入
    cout<<a<<endl; 
istr>>b; 
    cout<<b<<endl; 
}

输出

1 56.7

1

56.7

上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入”赋值”操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,str()成员函数的使用可以让istringstream对象返回一个string字符串。

 

ostringstream类向一个string插入字符。

#include <iostream> 
#include <sstream> 
#include <string> 
using namespace std; 
int main()   
{ 
    ostringstream ostr; 
    //ostr.str("abc");//如果构造的时候设置了字符串参数,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长 
    ostr.put('d'); 
    ostr.put('e'); 
    ostr<<"fg"; 
    string gstr = ostr.str(); 
    cout<<gstr; 
}

 输出:defg

在上例代码中,我们通过put()或者左移操作符可以不断向ostr插入单个字符或者是字符串,通过str()函数返回增长过后的完整字符串数据。

 

对于stringstream是用于C++风格的字符串的输入输出的,不多说。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159726.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 调用so库文件以及里面的方法「建议收藏」

    调用so库文件以及里面的方法「建议收藏」之前文章写过一篇JNI生成so库文件 并调用里面的方法手把手教你—JNI的实现实际开发中 so库是别人给你的,不是你自己写的没所以就要用别人的so库文件。有很多情况,有一种是比较简单的:既有so库文件又有对应的jar包,这样的话 直接就可以调用里面的方法了。第二种比较坑爹,限制也比较多,所以现在就主要研究一下第二种吧(只有so库 其他什么都没有)第一

  • maven 修改父项目依赖版本号_查看path

    maven 修改父项目依赖版本号_查看pathTomcat自身可以通过修改配置文件server.xml,在和之间插入如下语句:对应maven的tomcat插件弄法如下:org.apache.tomcat.maventomcat7-maven-plugin2.2

  • QStringList 使用

    QStringList 使用创建QStringList获取QStringList里面的元素QStringListstrList=item.split(‘#’);QStringstr1=strList.at(0);QStringstr2=strList.at(1);

  • MLP综述

    MLP综述MLP整体思路反向传播算法梯度下降算法

  • Struts2 FilterDispatcher的作用[通俗易懂]

    Struts2 FilterDispatcher的作用[通俗易懂]org.apache.struts2.dispatcher.FilterDispatcher是Struts2的主要的Filter,负责四个方面的功能:  (1)执行Actions  (2)清除ActionContext  (3)维护静态内容  (4)清除request生命周期内的XWork的interceptors  另注:该过滤器应该过滤所有的请求URL。一般被设置

  • laravel 文件上传总结

    laravel 文件上传总结

    2021年11月10日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号