您好,欢迎访问三七文档
Version3.0文件操作和异常第六章2回顾输出流插入操作符输出操纵符输入流提取操作符输入操纵符3目标文件输入文件输出异常处理4文件输入/输出从文件读取和写入文件的过程需要添加头文件fstream.h两个基本类ifstream读取文件ofstream写入文件5文件输出3-1流是一组字符或数据流的源或目的两种流输出流(允许写入或存储字符)输入流(允许读取或提取字符)输出流与ostream类相关联6文件输出3-2ios类是流类层次结构的虚拟基类istream和ostream类从类ios派生而来文件输出流是以文件为形式并链接到一个流7文件输出3-3三个提供文件输入/输出能力的流ifstream类从istream类派生,用于文件输入(读取)ofstream类从ostream类派生,用于文件输出(写入)fstream类从iostream类派生,用于输入和输出8文件输出示例#includefstream.hvoidmain(){char*name=QWERTYPOIUYT;intage=49;floatsalary=600.123f;ofstreamfout(TEST.TXT);fout此行写入了TEST.TXT中\n;foutnameagesalary;fout.close();}9文件输入istream包含为输入操作(流提取)定义的函数创建一个ifstream类的对象,使用流提取操作符()读取来自该对象的输入10文件输入示例#includefstream.hvoidmain(){ifstreamfin(TEST.TXT);charline[100];charname[50];intage;floatsalary;finline;finnameagesalary;coutlineendl;coutnameagesalaryendl;fin.close();}11文件输入/输出2-1fstream包含文件输入/输出中使用的类的定义#includefstream.h在一个需要文件输入/输出的程序中每一个输出文件实例化一个ofstream类的对象每一个输入文件实例化一个ifstream类的对象ofstream对象的使用和cout对象完全一样ifstream对象的使用和cin对象是完全一样12文件输入/输出2-2打开模式含义ios::out打开以进行写入ios::in打开以进行读取ios::ate在打开时查找到文件结尾ios::app追加到文件结尾ios::trunc如果文件存在则删除ios::nocreate如果文件不存在则打开失败ios::replace如果文件已存在则打开失败ios::binary打开一个二进制文件13文件输入/输出示例打开一个文件并删除所有内容ofstreamfout(TEST.TXT);ofstreamfout(TEST.TXT,ios::out);ofstreamfout(TEST.TXT,ios::out|ios::trunc);打开一个文件并追加内容ofstreamfout(TEST.TXT,ios::app);打开一个文件进行二进制输出ofstreamfout(TEST.TXT,ios::binary);14随机访问3-1get和put指针分别指定读和写操作的当前位置每次执行输入或输出操作时,这两个指针都按一定顺序自动移动seekg()和tellg()函数可用来控制get指针seekp()和tellp()函数对put指针进行类似的操作15随机访问3-2使用tellg()和tellp()函数在文件中查找get和put指针的当前位置seekg()使用两个参数要移动的字节数文件中重定位指针时的参考位置16随机访问3-3示例1ifstreamiFil;iFil.seekg(10,ios::beg);示例2intposition=iFil.tellg();17异常异常是在运行时发生的错误事件发生异常时,C++作出如下反应产生异常的函数产生系统定义的消息函数彻底终止函数跳过中间级别继续处理另一部分18异常与错误异常是在执行程序的过程中出现的错误或异常情况错误是指在编写和编译程序时存在的问题逻辑错误语法错误19异常处理异常处理的实现为try块,也称为监视部分throw表达式,指示异常的种类catch处理程序,在发生异常时执行20异常处理示例#includeiostream.hintmain(){try{intage;cout请输入您的年龄:;cinage;if(age100||age1)throw年龄无效!;coutthrow语句之后endl;}catch(char*msg){cout错误!msgendl;}coutcatch处理程序之后endl;return0;}21总结文件输入文件输出异常处理
本文标题:北大青鸟C++ 6
链接地址:https://www.777doc.com/doc-3350719 .html