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)
blank

相关推荐

发表回复

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

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