| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 编程 >> 其它编程 >> 正文 用户登录 新用户注册
C++风格文件输入输出流           ★★★ 【字体:
C++风格的文件输入输出流
作者:不详 文章来源:华盟收集 点击数: 更新时间:2009-1-6

  输出主要由重载的左移操作符(<<)来完成,输入主要由重载的右移操作符(>>)完成。

  >>a表示将数据放入a对象中。

  <<a表示将a对象中存储的数据拿出。

  接下来我们继续看一下C++风格的串流控制,C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。

  istringstream类用于执行C++风格的串流的输入操作。

  stringstream类同时可以支持C++风格的串流的输入输出操作。

  strstream类同时可以支持C风格的串流的输入输出操作。

  istringstream类是从istream(输入流类)和stringstreambase(c++字符串流基类)派生而来,ostringstream是从ostream(输出流类)和stringstreambase(c++字符串流基类)派生而来,stringstream则是从iostream(输入输出流类)和和stringstreambase(c++字符串流基类)派生而来。

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

  istringstream的构造函数原形如下:

istringstream::istringstream(string str);

#include <iostream>
#include <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;
system(\"pause\");
}

  上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入\"赋值\"操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,利用分界获取的方法我们事实上完成了字符串到整型对象与浮点型对象的拆分转换过程。

  str()成员函数的使用可以让istringstream对象返回一个string字符串(例如本例中的输出操作(cout<

  ostringstream同样是由一个string对象构造而来,ostringstream类向一个string插入字符。

  ostringstream的构造函数原形如下:

  ostringstream::ostringstream(string str);

  示例代码如下:

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

string gstr = ostr.str();
cout<<gstr;
system(\"pause\");
}

  在上例代码中,我们通过put()或者左移操作符可以不断向ostr插入单个字符或者是字符串,通过str()函数返回增长过后的完整字符串数据,但值得注意的一点是,当构造的时候对象内已经存在字符串数据的时候,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长。

  对于stringstream了来说,不用我多说,大家也已经知道它是用于C++风格的字符串的输入输出的。

  stringstream的构造函数原形如下:

  stringstream::stringstream(string str);

  示例代码如下:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
{
    stringstream ostr(\"ccc\");
    ostr.put(’d’);
    ostr.put(’e’);
    ostr<<\"fg\";
    string gstr = ostr.str();
    cout<<gstr<<endl;

    char a;
    ostr>>a;
    cout<<a

    system(\"pause\");
}

  除此而外,stringstream类的对象我们还常用它进行string与各种内置类型数据之间的转换。

  示例代码如下:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
{
    stringstream sstr;
//--------int转string-----------
    int a=100;
    string str;
    sstr<<a;
sstr>>str;  
    cout<<str<<endl;  
//--------string转char[]--------  
sstr.clear();//如果你想通过使用同一stringstream对象实现多种类型的转换,请注意在每一次转换之后都必须调用clear()
成员函数。
    string name = \"colinguan\";
    char cname[200];   [Page]
    sstr<<name;
    sstr>>cname;
    cout<<cname;
    system(\"pause\");
}

  接下来我们来学习一下输入/输出的状态标志的相关知识,C++中负责的输入/输出的系统包括了关于每一个输入/输出操作的结果的记录信息。这些当前的状态信息被包含在io_state类型的对象中。io_state是一个枚举类型(就像open_mode一样),以下便是它包含的值。

[1] [2] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇编程:

  • 下一篇编程: 没有了
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关编程
    我写CC思路及防范方法
    利用VB编写破坏性木马
    编写高级JavaScript代码
    编RealPlayer木马思路
    动手编写简单远程控制
    c/c++程序的内存分配
    VB编写的QQ自动登录器
    利用VB编写破坏性木马
    ipsecpol的规则脚本编写
    利用VB编写破坏性木马
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号