I/O流——对象和类入门
来源:互联网 发布:mac如何打开xml文件 编辑:程序博客网 时间:2024/05/18 15:52
I/O指的是程序的输入和输出。输入可自键盘或者一个文件中获得,输出可以发送至屏幕或文件。
1、 流和基本文件I/O
流(stream)是一个由字符(或者其他类型的数据)构成的“流(flow)”。如果流向程序,就成为输入流,如果流出程序就成为输出流。
文件I/O 从一个文件获取输入,称为读取文件,将输出发送给文件成为写入文件。输入文件流(input-file stream),和输出文件流(output-file stream)的类型名称分别为 ifstream和ofstream,包含在头文件 fstream中。
流文件必须连接到一个文件,成为打开文件,使用一个名为open的函数完成。调用方法为:
ifstream in_stream;
instream.open("filename"); 程序可以使用提取操作符>>从文件中获取输入,例如:
int one_number,another_number;
in_steram>>one_stream>>another_number;
输出流采用相同的方式打开文件,例如:
ofstream out_stream;
out_stream.open("filename"); 程序可以使用插入操作符<<将输出发送到文件中,例如:
out_stream<<"one_number="<<one_number<<endl;
out_stream<<"another_number="<<another_number<<endl;
文件关闭调用close函数。fail函数可以检验文件是否打开成功。
执行exit语句时,根据约定,如果是因为一个错误而调用exit,则语句形式为 exit(1),否则为exit(0)。
类与对象 对象是一个变量,和它关联的既有函数,也有数据。与对象关联的函数称为成员函数。
2、 流I/O工具
用流函数格式化输出 调用一些函数,将程序的输出布成为输出的格式。例如:(cout是输出流的名称)
cout.setf(ios::fixed); setf函数表示设置标志(set flag) (fixed表示不用e记数法)
cout.setf(ios::showpoint);
cout.precision(2); 输出流中的precision(n),表示保留n位有效数字
操纵元 是一种以非传统方式调用的函数。流操纵元随即要调用一个成员函数。操纵元位于插入操作符<<之后。从表面看,操纵元函数调用就是要输出的下一个项目。操纵元设置会一直生效,直到被重置为其他值,使用操纵元要包含 #include <iomanip> 和 using namespace std;
流作为函数实参 唯一的限制是函数的形参必须是传引用调用的。流参数不能是一个传值调用参数。例如:
void make_neat(ifstream& messy_file, ofstream& neat_file); 其中messy_file和neat_file分别是输入文件和输出文件流,使用传引用调用方式。
3、 字符I/O
get和put成员函数 get函数允许程序读取输入的一个字符,将它存储到char类型的一个变量中,每个输入流都提供了get成员函数。成员函数get取一个char类型的变量作为参数,该参数将用于接收从输入流读取的输入字符,例如:
char next_symbol;
cin.get(next_symbol);
程序能以这种方式读取任何字符。成员函数put类似于get,用于输出,put允许程序输出一个字符,put函数取一个char类型的参数,参数的值会被输出到流。
4、 继承
一个类自另一个类派生,是指派生类是在另一个类上添加新特性而得到的。即:类A是类B的派生类,则类A具有类B的全部特性,并且还新增了一些特性。
流类之间的继承关系 ifstream是istream的派生类,在函数调用中,istream类型的参数可以替换为ifstream类型的参数。如果像定义一个函数,要求它去一个输入流作为实参,并希望实参在某些情况下是cin流,在另一些情况下是输入文件流没救应该用istream类型的形参。但是ifstream作为实参时,必须声明ifstream类型。输出流ostream也类似。
派生类经常借助继承关系和家族关系来讨论。如果类B是类A的派生类,则类B是类A的子,类A是类B的父。我们可以说,派生类继承了父类的成员函数。
0 0
- I/O流——对象和类入门
- I/O流——对象和类入门(例子代码)
- Java I/O 技术(十)—— I/O 功能流对象(一)
- Java I/O 技术(十一)—— I/O 功能流对象(二)
- I/O流(三)—对象的序列化和反序列化
- Day17—File 类、I/O流
- Java I/O流操作(一)---入门篇和System和Properties类介绍
- 标准I/O流和FILE对象常用函数
- 5.2 标准I/O库_流和FILE对象
- 黑马程序员 总结(十九)——I/O流(File类和Properties类以及IO包中的其他流对象) .
- I/O 多路复用入门——select/poll/epoll
- python入门系列8―——I/O
- Java——I/O入门相关练习代码
- iomem—I/O映射方式的I/O端口和内存映射方式的I/O端口
- iomem—I/O映射方式的I/O端口和内存映射方式的I/O端口
- java I/O (二)——对象序列化
- I/O篇(4)——对象序列化
- 文件和I/O流
- Android进度条——ProgressDialog
- POJ1466/HDOJ1068 谈谈二分匹配的时间复杂度
- posix
- java简单工厂设计模式
- 2016 BOP 编程之美复赛心得
- I/O流——对象和类入门
- iOS tabBar改变颜色
- 思考:为什么内链是不可或缺的?!
- Rollout学习2 JS和OC代码对照篇
- 堆和栈的区别?
- 多数据源之间的切换
- Podfile.lock: No such file or directory
- 轮播广告-imageslider
- 外国投资者为不良贷款上升削减蓝筹股银行股份