第八章文件电子存储.ppt

上传人:本田雅阁 文档编号:2981171 上传时间:2019-06-17 格式:PPT 页数:25 大小:179.51KB
返回 下载 相关 举报
第八章文件电子存储.ppt_第1页
第1页 / 共25页
第八章文件电子存储.ppt_第2页
第2页 / 共25页
第八章文件电子存储.ppt_第3页
第3页 / 共25页
第八章文件电子存储.ppt_第4页
第4页 / 共25页
第八章文件电子存储.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第八章文件电子存储.ppt》由会员分享,可在线阅读,更多相关《第八章文件电子存储.ppt(25页珍藏版)》请在三一文库上搜索。

1、2019/6/17,软件学院软件基础教研室,1,C+简明教程,2019/6/17,软件学院软件基础教研室,2,第七章 文件:电子存储,输入输出流 文本文件的读写 二进制文件的读写,2019/6/17,软件学院软件基础教研室,3,1、输入输出流,1.1 什么是输入输出(I/O)流 由若干字节组成的字节序列,这些字节中 的数据按顺序从一个对象传送到另外一个对 象。,2019/6/17,软件学院软件基础教研室,4,1、输入输出流,1.2 I/O流的种类 标准输出流类对象cout(输出到显示器) 标准输入流类对象cin(键盘输入) 文件流(读/写文件) 文件输出流类ofstream 文件输入流类ifs

2、tream 文件输入输出流类fstream,2019/6/17,软件学院软件基础教研室,5,2、文本文件的写入,2.1 使用ofstream写文本文件 #include void main() ofstream outfile; /创建文件输出流对象 outfile.open(“c:test.txt”); /打开文件 if (outfile.fail() cout “文件打开失败“ endl; return; outfile “this is test” endl; /写文件 outfile.close(); /文件关闭 ,2019/6/17,软件学院软件基础教研室,6,2、文本文件的写入,程

3、序说明: void open ( const char * filename , int mode, int access) 功能:打开指定文件 参数说明: filename: 要打开的文件名 mode: 要打开文件的方式 access: 打开文件的属性,2019/6/17,软件学院软件基础教研室,7,2、文本文件的写入,mode 常用的值如下: ios:binary: 以二进制方式打开文件,缺省的方式是文本方式。 ios:in: 以输入方式打开文件 ios:out: 以输出方式打开文件 可以用“|”连接属性,如ios:out | ios:binary,2019/6/17,软件学院软件基础教研

4、室,8,2、文本文件的写入,access的取值 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”把以上属性连接起来 ,如1|2就是以只读和隐含属性打开文件。,2019/6/17,软件学院软件基础教研室,9,2、文本文件的写入,2.2 使用fstream写文本文件 void void() fstream file; file.open(“c:test1.txt”, ios:out);/以输出方式打开文件 if (file.fail() cout “can not open file“ endl; return; file “ test fstream “ endl;

5、 file.close(); ,2019/6/17,软件学院软件基础教研室,10,2、文本文件的写入,程序说明: file.open(“c:test1.txt”); 相当于 file.open(“ c:test1.txt “, ios:in | ios:out,0);,2019/6/17,软件学院软件基础教研室,11,3、文本文件的读取,3.1 使用ifstream读取文本文件 void main() char str80; ifstream infile; infile.open(“c: test.txt”);/以输入方式打开文件 if (infile.fail() return; whil

6、e ( ! infile.eof() ) /没有到达文件尾 infile.getline(str,80); /读取文件中的一行 cout str; infile.close(); ,2019/6/17,软件学院软件基础教研室,12,3、文本文件的读取,程序说明: int eof() 功能:检测是否到达文件尾,如果到达文件 尾,返回非0值,否则返回0。,2019/6/17,软件学院软件基础教研室,13,3、文本文件的读取,3.2 使用fstream读取文本文件 void main() char str 80; fstream file; file.open( “c:dong.txt“ , ios

7、:in); /以输入方式读取文件 if ( file.fail() ) return; while ( !file.eof() ) file.getline(str,80);/读取文件中的一行 cout str; file.close(); ,2019/6/17,软件学院软件基础教研室,14,4、文本文件和二进制文件的区别,4.1 什么是文本文件和二进制文件 文本文件 文件的每一个字节都是可打印字符的ASCII码 用流操作符 读写文件 二进制文件 文件的每一个字节可以是ASCII码,也可以是非ASCII码 用read和write函数读写文件,2019/6/17,软件学院软件基础教研室,15,4

8、、文本文件和二进制文件的区别,4.2 如何理解文本文件 实验: 1、在记事本中写入字符1后保存到c:test.dat; 2、用VC以Text方式打开c:test.dat,显示内 容是1; 3、关闭test.dat; 4、用VC以Binary方式打开test.dat,显示内 容是31(字符1的ASCII码),2019/6/17,软件学院软件基础教研室,16,4、文本文件和二进制文件的区别,结论: 1、文本文件中的内容仍然以二进制数据 保存,只是每个二进制数据都对应一个ASCII 码。 2、应用程序根据ASCII码显示出相应的字符。,2019/6/17,软件学院软件基础教研室,17,4、文本文件和

9、二进制文件的区别,4.3 如何理解二进制文件 实验: 1、用VC以Binary方式打开test.dat,将其内 容修改为01,保存test.dat。 2、关闭test.dat,用记事本打开test.dat,显 示内容是什么?,2019/6/17,软件学院软件基础教研室,18,4、文本文件和二进制文件的区别,结论: 1、二进制文件中的数据不一定能解释为 ASCII。 2、二进制文件中的数据由应用程序自己负责 识别其含义。,2019/6/17,软件学院软件基础教研室,19,5、二进制文件的写入,5.1 使用ofstream写二进制文件 void main() ofstream outfile; o

10、utfile.open(“c:testbin.dat“ , ios:binary);/以二进制方式打开 if ( outfile.fail() return; int a3=1,2,3; for (int i=0;i3;i+) outfile.write(char *) /testbin.dat中的内容是什么? ,2019/6/17,软件学院软件基础教研室,20,5、二进制文件的写入,程序说明: write( char *p, int count) 向文件写入数据,count表示数据个数。,2019/6/17,软件学院软件基础教研室,21,5、二进制文件的写入,思考题:以下代码还有其他实现方法

11、吗? for (int i=0;i3;i+) binfile.write(char *) ,2019/6/17,软件学院软件基础教研室,22,5、二进制文件的写入,方法一、将整个数组写到文件中 void main() ofstream binfile; binfile.open(“c:testbin.dat“ , ios:binary); if ( binfile.fail() return; int a3=1,2,3; binfile.write(char * )a, sizeof(a); binfile.close(); ,2019/6/17,软件学院软件基础教研室,23,5、二进制文件的

12、写入,方法二、使用reinterpret_cast void main() ofstream outfile; outfile.open(“c:testbin.dat“ , ios:binary);/以二进制方式打开 if ( outfile.fail() return; int a3=1,2,3; for (int i=0;i( ,2019/6/17,软件学院软件基础教研室,24,5、二进制文件的读取,5.2 使用ifstream读取二进制文件 void main() ifstream infile; infile.open(“c:testbin.dat“ , ios:binary); int b3; for (int i = 0;i3;i+) infile.read( (char*) ,2019/6/17,软件学院软件基础教研室,25,5、二进制文件的读取,程序说明: read( char * p, int count) 从文件中读取数据,count表示数据个数。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1