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. nginx源代码分析--配置信息的继承&amp;合并

    这里仅仅讲述http{}模块下的配置: 在ngx_http_block()函数内(这个函数别调用时在ngx_inti_cycle内的ngx_conf_parse函数,这个函数遇到http命令时 回调n ...

  2. Spark SQL之External DataSource外部数据源(二)源代码分析

    上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...

  3. Fedora 25/24/23 nVidia Drivers Install Guide

    https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/ search Most Popular Featured Linux ...

  4. 通过JAVA调用命令行程序

    这是我在把数据导入到数据库时遇到问题,总结下来的.包含两个方法,一个方法是读取文件路径下的文件列表,主方法是执行cmd命令,在导入时想得到导入一个文件的时间,涉及到线程阻塞问题,这个问题理解不是很深, ...

  5. ffmpeg mediacodec 硬解初探

    ffmpeg mediacodec 硬解初探 1编译: ffmpeg自3.1版本加入了android mediacodec硬解支持,解码器如图 硬件加速器如图(还不清楚硬件加速器的功能) 编译带h26 ...

  6. 记使用WaitGroup时的一个错误

    记使用WaitGroup时的一个错误 近期重构我之前写的server代码时,不当使用了WaitGroup,碰到了个错误,记录下. package main import ( "fmt&quo ...

  7. mysql 中的增改查删(CRUD)

    增改查删可以用CURD来表示  增加:create  修改:update   查找:read      删除:delete 增加create :  insert +表名+values+(信息): in ...

  8. 九度OJ 1109:连通图 (最小生成树)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2783 解决:1432 题目描述: 给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的. 输入: 每组数据的第一行是两个整数 n ...

  9. throws ? catch checked unchecked

    ThrowableClass Error  (unchecked) Exception IOException (checked) RuntimeException (unchecked) publi ...

  10. 如何设置Tomcat的JVM虚拟机内存大小

    我的是解压版的tomcat: 首先找到tomcat中bin目录下: catalina.bat 文件,打开这个文件,在 @echo off 下面一行,加上一行代码: set JAVA_OPTS=-ser ...