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. 最简单的基于FFmpeg的移动端样例附件:SDL Android HelloWorld

    ===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...

  2. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(62)-EF链接串加密

    前言: 这一节提供一个简单的功能,这个功能看似简单,找了一下没找到EF链接数据库串的加密帮助文档,只能自己写了,这样也更加符合自己的加密要求 有时候我们发布程序为了避免程序外的SQL链接串明文暴露,需 ...

  3. 多线程(C++)临界区Critical Sections

    一 .Critical Sections(功能与Mutex相同,保证某一时刻只有一个线程能够访问共享资源,但是不是内核对象,所以访问速度比Mutex快,但是没有等待超时的功能,所以有可能导致死锁,使用 ...

  4. 谈谈加载(Loading)的那点事

    谈谈加载(Loading)的那点事 2013/10/12 | 分类: 设计 | 0 条评论 | 标签: 交互设计, 加载 分享到:33 原文出处: 搜狐焦点 对于加载(loading),想必大家都不陌 ...

  5. springboot中tomcat找不到jsp页面【转载】

    这个原理还没搞明白,只知道是内嵌的tomcat找jsp时默认不读取resources目录,但是具体的默认读取的是哪个目录,打了一下午断点我也没找到.... 修改方式,添加配置修改tomcat的读取目录 ...

  6. mac gem命令

    $ gem sources -r https://rubygems.org/ (移除旧版本的镜像,如果你不知道你电脑上目前用的是什么镜像,可用  $ gem sources -l  来查看)  $ g ...

  7. Delphi里可将纯虚类实例化,还可调用非虚函数

    这是与Java/C++的巨大不同.目前还没仔细想这个特征与TClass之间的联系,先记住结论再说.以后再回来修改这个帖子. unit Unit1; interface uses Windows, Me ...

  8. C#实现(递归和非递归)高速排序和简单排序等一系列排序算法

        本人由于近期工作用到了一些排序算法.就把几个简单的排序算法.想冒泡排序,选择排序,插入排序.奇偶排序和高速排序等整理了出来,代码用C#代码实现,而且通过了測试.希望能给大家提供參考.     ...

  9. appium(3)-Running Tests

    Running Tests   Preparing your app for test (iOS) Test apps run on the simulator have to be compiled ...

  10. STM32 ~ JTAG、SWD和串口下载的问题

    最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式.这样在实际操作中做出一些总结(方法网上都有.这 ...