资源描述:
《落实程序设计实习.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计实习输入输出流和文件操作输入输出流流的概念模型C++中与流操作相关的类及其继承关系输入输出流对象:cin,cout,cerr,clog输出流输入流无格式输入输出流操纵算子流格式状态输入和输出计算机、程序输入输出键盘鼠标文件传感器(触摸屏、麦克风)……显示器音箱文件打印机……扫描仪控制器物理信号文件一种物理信号:持续保存程序的数据、状态内存:程序退出后就丢失了文件:程序退出后还存在根据物理信号的载体(文件的保存介质),常见的文件形式有磁带文件光盘文件磁盘文件U盘文件……计算机、程序文件文件物
2、理信号驱动器驱动器信号读设备信号写设备为什么要文件?程序退出后,保存数据和状态;下次再执行时,可以恢复程序的运行状态玩家玩游戏累了,休息去明天重新打开计算机,从当前的进度接着玩把一个程序的数据和状态传送给其他的程序出版公司将歌曲制作成MP3文件听众用播放器播放歌曲一个程序的数据太多、状态太复杂而不能保存在内存中时,让程序能够工作北大图书馆有大量的藏书、读者把藏书的目录、读者的借阅记录保存在磁盘上读者甲来借阅图书A时,将甲的信息、A的信息读到内存中处理流的概念模型流-设备驱动器与计算机程序之间的接口
3、,可以看作一个无限长的二进制数字序列通过读写指针进行流的读和写(以字节为单位)~10101110~~10101110~将流上的数据读进变量x1010111011100010将y的值写入流yx流的概念模型输出流可以看作一端无限,另一端通过写指针不停地向后写入新内容的单向流,1100011010~写指针流的概念模型输入流可以看作一端无限,另一端通过读指针不停地从流中读取新内容的单向流,读出的内容从流中删去。1100011010~读指针有格式读写和无格式读写字符方式/二进制方式读写有格式读写,以某种数
4、据类型为单位读写例如:读一个整数,写一个浮点数等;无格式读写,以字节为单位读写,不区分其中的内容例如:读20个字节,写50个字节等;缓冲区刷新向输出流中写数据时,通常是先向缓冲区中写,当缓冲区写满时,才真正向输出流写;也可以通过函数在程序中主动将缓冲区内容写入输出流。C++中与流操作相关的类及其继承关系iosistreamostreamifstreamiostreamofstreamfstream标准流对象输入流对象:cin与标准输入设备相连输出流对象:cout与标准输出设备相连cerr与标准错
5、误输出设备相连非缓冲输出clog与标准错误输出设备相连缓冲输出输出流流插入运算符<>运算符的定义:istream&operator>>(istr
6、eam&input,A&a){…….returninput;}返回的是输入流的引用(引用本身是地址),在读取不成功时,该地址被置成0.输入流成员函数cin.get()读入一个字符(包括空白字符),返回该字符;cin.get(char*buffer,intsize,chardelim=‘’)或者读size–1个字符入buffer,或者遇到‘’;在buffer最后加‘ ’,分隔符留在输入流.cin.getline(char*buffer,intsize,chardelim=‘’)或者读s
7、ize–1个字符入buffer,或者遇到‘’;在buffer最后加‘ ’,分隔符从流去掉.cin.eof()返回输入是否结束标志.输入流其它函数cin.peek();返回下一个字符,但不从流中去掉.putback(charch);将字符ch放回输入流ignore(intnCount=1,intdelim=EOF);从流中删掉最多nCount个字符,遇到EOF时结束。无格式输入输出用read,write进行指定字节数的输入输出constintSIZE=80;charbuffer[SIZE];c
8、in.read(buffer,20);cout.write(buffer,cin.gcount());//gcount返回上次读入的字节数cout<