欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C+程序设计第10章 输入输出.ppt

    • 资源ID:6154085       资源大小:242.49KB        全文页数:35页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C+程序设计第10章 输入输出.ppt

    第十章 输入/输出,本章内容,输入/输出(I/O)概述控制台I/O文件I/O字符串I/O,输入/输出(I/O)概述,输入/输出(简称I/O)是程序的一个重要组成部分:程序运行所需要的数据往往要从外设(如:键盘、文件等)得到程序的运行结果通常也要输出到外设(如:显示器、打印机、文件等)中去。在C+中,输入/输出不是语言定义的成分,而是由具体的实现(编译程序)作为标准库的功能来提供。,C+的I/O流,在C+中,输入/输出操作是一种基于字节流的操作:在进行输入操作时,可把输入的数据看成逐个字节地从外设流入到计算机内部(内存);在进行输出操作时,则把输出的数据看成逐个字节地从内存流出到外设。在C+的标准库中,除了提供基于字节的输入/输出操作外,为了方便使用,还提供了基于C+基本数据类型数据的输入/输出操作。在C+程序中也可以对类库中输入/输出类的一些操作进行重载,使其能对自定义类的对象进行输入/输出操作。,I/O的分类,基于控制台的I/O:从标准输入设备(如:键盘)获得数据把程序结果从标准输出设备(如:显示器)输出基于文件的I/O:从外存文件获得数据把程序结果保存到外存文件中基于字符串变量的I/O:从程序中的字符串变量中获得数据把程序结果保存到字符串变量中,C+输入输出的实现途径,过程式通过从C语言保留下来的函数库中的输入/输出函数来实现。面向对象通过C+的I/O类库中的I/O类来实现。,面向对象的输入/输出,C+的I/O类库提供了以面向对象方式进行输入/输出。以下是I/O类库中基本的I/O类:,在进行输入/输出时,首先创建一个I/O类的对象,然后,通过该对象(调用对象类的成员函数)进行输入/输出操作。istream类重载了操作符“”(抽取),用它可以进行基本类型数据的输入操作。例如:istream in(.);in x;/x是一个变量in y;/y是一个变量或in x y;ostream类重载了操作符“”(插入),用它可以进行基本数据类型数据的输出操作。例如:ostream out(.);out e1;/e1是一个表达式out e2;/e2是一个表达式或out e1 e2;,控制台I/O,在I/O类库中预定义了四个I/O对象:cin、cout、cerr以及clog,可以直接利用这些对象进行控制台的输入/输出操作:cin属于istream类的对象,它对应着计算机系统的标准输入设备;cout属于ostream类的对象,它对应着计算机系统的用于输出程序正常运行结果的标准输出设备;cerr和clog属于ostream类的对象,它们对应着计算机系统的用于输出程序错误信息的设备,通常情况下它们都对应着显示器;在进行控制台输入/输出时,程序中需要有下面的包含命令:#include,控制台输出,#include using namespace std;.int x;float f;char ch;int*p=,输出格式控制,为了对输出格式进行进一步的控制,可以通过输出一些操纵符(manipulator)来实现,例如:#include#include/操纵符声明的头文件。using namespace std;.int x=10;cout hex x endl;/以十六进制输出x的值,然后换行。,常用输出操纵符,对于浮点数(float、double和long double):当输出格式为ios:scientific或ios:fixed时,操纵符setprecision用于设置浮点数(float和double)小数点后面的位数;当输出格式既不为ios:scientific也不为ios:fixed,或两者都有时,操纵符setprecision用于设置浮点数有效数字的个数,这时的输出格式根据有效数字自动确定。,除了通过插入操作符进行输出外,也可以用ostream类提供的一些基于字节流的操作来进行输出,例如:/输出一个字符。ostream,控制台输入,#include using namespace std;.int x;double y;char str10;cin x;cin y;cin str;或者cin x y str;在输入时,各个数据之间用空白符分开。,可以通过一些操纵符来控制输入的行为,例如:cin setw(10)str;/把输入的前9个字符和一个0放入str中。除了抽取操作符“”外,还可以使用istream类的基于字节流的成员函数来进行输入,例如:/输入一个字符。istream:get(char,输入/输出操作符“”和“”的重载,为了能用抽取操作符“”和插入操作符“”。对自定义的类重载插入操作符“”时,须作为全局函数来重载。,插入操作符“”的重载,class Aint x,y;public:.friend ostream,派生类输出操作符“”的重载,class Aint x,y;public:.virtual void display(ostream,文件I/O,程序运行结果有时需要永久性地保存起来,以供其它程序或本程序下一次运行时使用。程序运行所需要的数据也常常要从其它程序或本程序上一次运行所保存的数据中获得。用于永久性保存数据的设备称为外部存储器(简称:外存),如:磁盘、磁带、光盘等。在外存中保存数据的方式通常有两种:文件和数据库。本课程只介绍以文件方式来永久性地保存数据。,文件的基本概念,在C+中,把文件看成是由一系列字节所构成的字节串,称为流式文件,对文件中数据的操作(输入/输出)通常是逐个字节顺序进行。在对文件数据进行读写的过程:打开文件。目的是:在程序内部的一个表示文件的变量/对象与外部的一个具体文件之间建立联系。文件读/写关闭文件。目的是把暂存在内存缓冲区中的内容写入到文件中,并归还打开文件时申请的内存资源。,每个打开的文件都有一个内部的位置指针,它指出文件的当前读写位置。进行读/写操作时,每读入/写出一个字节,文件位置指针会自动往后移动一个字节的位置。,位置指针,文件数据的存储方式,文本方式(text)只包含可显示字符和有限的几个控制字符(如:r、n、t等);一般用于存储具有“行”结构的文本数据;文本方式存储整数1234567:依次把1、2、3、4、5、6、7的ASCII码(共7个字节)写入文件。二进制方式(binary)可以包含任意的二进制字节;一般用于存储无显式结构的数据;二进制方式存储整数1234567:把整数1234567的计算机内部表示(假设为32位计算机):0012D687(十六进制,4个字节:00 12 D6 87)写入文件。,文件输出,在利用I/O类库中的类进行外部文件的输入/输出时,程序中需要下面的包含命令:#include#include 对于文件输出:创建一个ofstream类(是ostream类的派生类)的对象。建立ofstream类的对象与外部文件之间的联系。,建立ofstream类的对象与外部文件联系的方式,直接方式:在创建ofstream类的对象时指出外部文件名和打开方式。例如:ofstream out_file(,);间接方式是在创建了ofstream类的对象之后,调用ofstream的一个成员函数open来指出与外部文件的联系。例如:ofstream out_file;out_file.open(,);,文件输出打开方式,打开方式:ios:out,含义是打开一个外部文件用于写操作,如果外部文件已存在,则首先把它的内容清除;否则,先创建该外部文件。ios:app,含义是打开一个外部文件用于添加(从文件末尾)操作。如果外部文件不存在,则先创建该外部文件。上面的值与ios:binary按位或(|)操作的结果,它表示按二进制方式打开文件。默认的打开方式是文本方式。对以文本方式打开的文件,当输出的字符为n时,在某些平台上(如:DOS和Windows平台)将自动转换成r和n两个字符写入外部文件。,打开文件时,必须要对文件打开操作的成功与否进行判断。判断文件是否成功打开可以采用以下方式 if(!out_file)/或:out_file.fail()/或:!out_file.is_open()./失败处理,文件成功打开后,可以使用插入操作符“”或ofstream类的一些成员函数来进行文件输出操作,例如:ofstream out_file(d:myfile.dat,ios:out);if(!out_file)exit(-1);int x;double y;.out_file x,y endl;out_file.put(A);out_file.write(ABCDEFG,7);文件输出操作结束时,要使用ofstream的一个成员函数close关闭文件:out_file.close();,文件输入,首先创建一个ifstream类(istream类的派生类)的对象,并与外部文件建立联系。例如:ifstream in_file(,);或ifstream in_file;in_file.open(,);打开方式:ios:in,它的含义与fopen的打开方式“r”相同也可以把它与ios:binary通过按位或(|)操作实现二进制打开方式。默认为文本方式。对以文本方式打开的文件,当文件中的字符为连续的r和n时,在某些平台上(如:DOS和Windows平台)将自动转换成一个字符n输入。,判断打开成功的方式与输出文件对象相同。文件成功打开后,可以使用抽取操作符“”或ifstream类的一些成员函数来进行文件输出操作,例如:ifstream in_file(d:myfile.dat,ios:in);if(!in_file)exit(-1);char ch,buf11;int x;double y;.in_file x ch y;in_file.get(ch);in_file.read(buf,7);buf7=0;,判断文件是否结束可以调用ios类的成员函数eof来实现:int ios:eof();该函数返回0表示文件未结束;返回非0表示文件结束。文件输出操作结束时,要使用ifstream的一个成员函数close关闭文件:in_file.close();注意:从文件输入必须要知道文件中数据的存储格式!,文件输入/输出,如果需要打开一个既能读入数据、也能输出数据的文件,则需要创建一个fstream类的对象(类fstream是类iostream的派生类)。在创建fstream类的对象并建立与外部文件的联系时,文件打开方式应为:ios:in|ios:out(可在文件任意位置写)或ios:in|ios:app(只能在文件末尾写),随机存取文件,为了能够随机读写文件中的数据,必须要显示地指出读写的位置。对于以输入方式打开的文件,可用下面的操作来指定文件内部指针位置:istream/获得指针位置 可以是:ios:beg(文件头),ios:cur(当前位置)和ios:end(文件尾)。,字符串I/O,程序中的有些数据并不直接输出到标准输出设备或文件,而是需要保存在程序中的某个字符串变量中。,首先需要创建类istrstream、ostrstream或strstream的一个对象对于ostrstream类:char buf100;ostrstream str_buf;或 ostrstream str_buf(buf,100);对于istrstream类 char buf100;./通过某种途径在buf中存放了一些字符。istrstream str_buf(buf);或 istrstream str_buf(buf,100);然后可以用与控制台和文件输入/输出类似的操作进行基于字符串变量的输入/输出。,

    注意事项

    本文(C+程序设计第10章 输入输出.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开