1 文件的打开和关闭

1.1 定义流对象

  ifsteam iflie;//文件输入流对象

  ifsteam iflie;//文件输出流对象

  fsteam iflie;//文件输入输出流对象

1.2 打开文件

  void open(const unsigned char* filename,int mode,int accessfilebuf:opnprot)

    mode为打开的方式,相关标记如下图所示(ios中)

    

  注意:

    (1)通常打开方式用|组合起来

       ios::in|ios::out  //读写方式打开文件

       ios::out|ios::binary //二进制写方式打开文件

    (2)iftream:默认ios::in

     ofstream:默认ios::out|ios::trunc

     fstream:默认ios::in|ios::out|ios::app

2 状态函数

  eof():读文件到达末尾 true

  bad():读文件出错返回true 当我打开一个不可以写但是进行写入的时候

  fail:当需要输入整形的时候我们输入了字母

  good:如果上面任何一个函数都是true的话 返回false

  clear():

#include <iostream>
#include <stdlib.h>
using namespace std; int main()
{
int integerV;
cout << "before a bad input operation:"
<< "\n cin.eof():" << cin.eof()
<< "\n cin.fail():" << cin.fail()
<< "\ncin.bad():" << cin.bad()
<< "\ncin.good()" << cin.good() << endl;
cin >> integerV;//control +D/Z
cout << "after a bad input operation:"
<< "\n cin.eof():" << cin.eof()
<< "\n cin.fail():" << cin.fail()
<< "\ncin.bad():" << cin.bad()
<< "\ncin.good()" << cin.good() << endl;
system("pause");
return ; }

3 (cin)和(!cin)的分析

  不管是while(cin)还是if(cin)都是合法的为什么?自定义一个类,然后定义这个类的对象,使用if语句判断它是不合法的。说明流对象有莫中转换函数 可以将一个流对象转换成判断语句可以识别的类型

operator void*() const函数在while(cin)或者if(cin)隐式转换位void*类型
bool operator!() const;函数在while(!cin)或者式if(!cin)被调用 将流对象转换成bool对象
while(cin)--->while(!cin.fail)
while(!cin)---->while(cin.fail)

 class A
{
public:
A(){}
~A(){}
operator void*() const
{
cout << "cast to void*";
return (void*)this;
}
bool operator!() const
{
cout << "cast to bool";
return true;
}
}; int main()
{
A a;
if (a)cout << "first" << endl;
if (!a)cout << "second" << endl;
system("pause");
return ;
}

4 文件读写操作

c++中IO输入输出流总结<二>的更多相关文章

  1. c++中IO输入输出流总结<一>

    1 io类图关系 1.1 简化形式 1.1.2补充 iostream: istream:从流中读取 ostream:写入到流 iosteram:读写流 fstream: ifstream:从文件读 o ...

  2. 详解Java中的IO输入输出流!

    目录 本片要点 基本分类 发展史 文件字符流 输出的基本结构 流中的异常处理 异常处理新方式 读取的基本结构 运用输入与输出完成复制效果 文件字节流 缓冲流 字符缓冲流 装饰设计模式 转换流(适配器) ...

  3. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  4. java io 输入输出流

    数据流分类: 流序列中的数据既可以是未经加工的原始二进制数据, 也可以是经一定编码处理后符合某种格式规定的特定数据. 因此Java中的流分为两种: 1) 字节流:数据流中最小的数据单元是字节 2) 字 ...

  5. IO输入输出流

    在Java中进行文件的读写,Java IO流是必备的知识. IO流指 的是输入输出流,用来处理设备上的数据.这里的设备指硬盘,内存,键盘录入,网络传输等. 按处理数据类型来分:字节流和字符流. 按流的 ...

  6. 全面掌握IO(输入/输出流)

    File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...

  7. iostream/fstream中的输入输出流指针的绑定,tie函数的使用。

      为了兼容c语言的输入输出,c++里面采用tie将输入输出流经行绑定,所以cin/cout并不是独立的.当执行cin时,cout同时会被执行.反之亦然. by defalut,cin is tied ...

  8. Java中的输入输出流

    FileInputStream和FileOutputStream 创建含磁盘文件的输入 输出流对象. FileInputStream继承自InputStream,用于读取本地文件中的字节数据,由于所有 ...

  9. java IO输入输出流中的各种字节流,字符流类

    字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...

随机推荐

  1. 构建基于Javascript的移动web CMS——Hello,World

    在一篇构建基于Javascript的移动web CMS入门--简单介绍中简单的介绍了关于墨颀CMS的一些原理,其极框架组成.于是開始接着应该说明一下这个CMS是怎样一步步搭建起来. RequireJS ...

  2. 晶振及COMS电路

    COMS电路:http://www.docin.com/p-246885507.html 简介:无源晶振和有源晶振 电子线路中的晶体振荡器也分为无源晶振和有源晶振两种类型.无源晶振与有源晶振的英文名称 ...

  3. 服务管理-tomcat

    Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成.由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在T ...

  4. css实现轮播效果图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. C#Soket组播

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  6. poj1125--Floyd

    题解: 有N个股票经济人能够互相传递消息.他们之间存在一些单向的通信路径.如今有一个消息要由某个人開始传递给其它全部人.问应该由哪一个人来传递,才干在最短时间内让全部人都接收到消息. 显然,用Floy ...

  7. ASP.NET MVC 页面使用富文本控件的XSS漏洞问题

    目前在做的项目存在XSS安全漏洞! 原因是有一些页面使用了富文本编辑框,为了使得其内容可以提交,为相关action设置了[ValidateInput(false)] 特性: [HttpPost] [V ...

  8. Use Apache HBase™ when you need random, realtime read/write access to your Big Data.

    Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ whe ...

  9. 20170316 REUSE_alv_display_lvc 面向对象函数

    **将ALV显示数据更新进输出内表中  DATA: LR_GRID TYPE  REF TO CL_GUI_ALV_GRID.  CALL FUNCTION 'GET_GLOBALS_FROM_SLV ...

  10. Hihocoder #1095 : HIHO Drinking Game (微软苏州校招笔试)( *【二分搜索最优解】)

    #1095 : HIHO Drinking Game 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi and Little Ho are playin ...