c++中IO输入输出流总结<二>
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输入输出流总结<二>的更多相关文章
- c++中IO输入输出流总结<一>
1 io类图关系 1.1 简化形式 1.1.2补充 iostream: istream:从流中读取 ostream:写入到流 iosteram:读写流 fstream: ifstream:从文件读 o ...
- 详解Java中的IO输入输出流!
目录 本片要点 基本分类 发展史 文件字符流 输出的基本结构 流中的异常处理 异常处理新方式 读取的基本结构 运用输入与输出完成复制效果 文件字节流 缓冲流 字符缓冲流 装饰设计模式 转换流(适配器) ...
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- java io 输入输出流
数据流分类: 流序列中的数据既可以是未经加工的原始二进制数据, 也可以是经一定编码处理后符合某种格式规定的特定数据. 因此Java中的流分为两种: 1) 字节流:数据流中最小的数据单元是字节 2) 字 ...
- IO输入输出流
在Java中进行文件的读写,Java IO流是必备的知识. IO流指 的是输入输出流,用来处理设备上的数据.这里的设备指硬盘,内存,键盘录入,网络传输等. 按处理数据类型来分:字节流和字符流. 按流的 ...
- 全面掌握IO(输入/输出流)
File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...
- iostream/fstream中的输入输出流指针的绑定,tie函数的使用。
为了兼容c语言的输入输出,c++里面采用tie将输入输出流经行绑定,所以cin/cout并不是独立的.当执行cin时,cout同时会被执行.反之亦然. by defalut,cin is tied ...
- Java中的输入输出流
FileInputStream和FileOutputStream 创建含磁盘文件的输入 输出流对象. FileInputStream继承自InputStream,用于读取本地文件中的字节数据,由于所有 ...
- java IO输入输出流中的各种字节流,字符流类
字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...
随机推荐
- hdu 5316 Magician 线段树
链接:http://acm.hdu.edu.cn/showproblem.php? pid=5316 Magician Time Limit: 18000/9000 MS (Java/Others) ...
- jQuery UI Autocomplete是jQuery UI的自动完成组件
支持的数据源 jQuery UI Autocomplete主要支持字符串Array.JSON两种数据格式. 普通的Array格式没有什么特殊的,如下: ? 1 ["cnblogs" ...
- maven的坑: Exception in thread "pool-1-thread-1" java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State
搭建ReboletricSample的环境: 搭建完成,执行的时候报错: Exception in thread "main" java.lang.NoClassDefFoundE ...
- java 的PO、VO、TO、BO、DAO、POJO解释(转载)
PO(persistent object):持久化对象 在O/R映射时出现的概念.如果没有O/R映射,则不存在PO.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看作是与数据库中的表相映 ...
- Linux 操作系统中的进程结构
前言 在 Linux 中,一个正在执行的程序往往由各种各样的进程组成,这些进程除了父子关系,还有其他的关系.依赖于这些关系,所有进程构成一个整体,给用户提供完整的服务( 考虑到了终端,即与用户的交互 ...
- SICP 习题 (1.38)解题总结
SICP 习题1.38 紧跟着习题1.37的方向,要求我们用习题1.37中定义的cont-frac过程计算数学家欧拉大师在论文De Fractionibus Continuis 中提到的e-2的连分式 ...
- checkAll全选的一个小例子
function checkAll(tag,flag) { //得到所有check var checkboxs = $(tag).closest("table").find(&qu ...
- thinkphp权限管理Rbac实例
首先,先建立Rbac那五张表(用户表,角色表,节点表,权限表,角色-用户表),后面四张可以在thinkphp中Rbac类里直接复制. 第二步,根据需求往那五张表里插入数据,注意:节点表里的节点名称一定 ...
- Linux就该这么学--命令集合5(用户与组管理命令)
1.useradd命令用于创建新用户:(useradd [选项] 用户名) 附录: -d 指定用户的家目录 -D 展示默认值 -e 账号有效截止日期,格式:YYY-MM-DD -g 指定一个初始用户组 ...
- SE14 调整并激活数据库
一.使用SE14 激活并调整MARA 时的消息:(体验心惊肉跳,你就改改标准表试试.-增强也请小心谨慎) 使用检查: 调整并激活后的结果: 二.如果 运行时对象检查 出错误,参考 http://blo ...