第十一章 IO流与文件系统 丘志杰 电子科技大学 计算机学院 软件学院.

Slides:



Advertisements
Similar presentations
1 第二讲 C++ 编程基础. 2 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境.
Advertisements

計算機程式語言實習課.
第二章 项目一:企业厂区与车间平面设计 1.
補充: Input from a text file
第11章 输入输出流类.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
流类库与输入/输出 输入/输出标准流类 文件流类 串流类 输入/输出成员函数 用户自定义类型的输入/输出.
C++的檔案處理 綠園.
第六节 白涩症.
高级语言程序设计 主讲人:陈玉华.
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
C++程序设计 第二讲 清华大学软件学院.
第8章 C++输入输出类层次 ffh.
刘胥影 东南大学计算机学院 面向对象程序设计1 2011~2012第3学期 刘胥影 东南大学计算机学院.
第七章 I/O流.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第11章 运算符重载 什么是运算符重载 运算符重载的方法 几个特殊的运算符的重载 自定义类型转换运算符 运算符重载实例.
新世纪计算机专业系列教材 数据结构 C++实现 第一章 缪淮扣 顾训穰 沈 俊 编著 科 学 出 版 社.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
第八﹑九章 I/O系統 檔案I/O的基本概念 格式化I/O 建立自訂的嵌入子 建立自訂的擷取子 自訂I/O與檔案.
Object-Oriented Programming in C++ 第一章 C++的初步知识
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第9章 C++的文件操作 “文件”,一般是指内存以外的存储介质上一批数据的集合。C++在语言层次上提供了文件操作的一系列函数用于完成文件的操作,打开、关闭文件,读取、写入文件数据等操作。 1。字符文件与二进制文件 字符文件:又称ASCII文件或文本TEXT文件,它是以一个字节存放一个ASCII码,代表一个字符。例如,32767需要使用5个字节表示,即:
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
算法的基本概念.
第二章 C++对C 在非面向对象方面的改进 更简洁,更安全.
第四章 小技巧.
檔案 將資料存入磁碟或由磁碟取出資料的方式, 稱為檔案存取處理。 C語言的檔案處理 C++語言的檔案處理.
第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++程序设计 string(字符串类) vector(容器类).
第13章 输入输出流 王雪晶.
第九章 C++的I/O流库 9.1 流 9.2 磁盘文件 9.3 程序举例.
第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节.
C++语言程序设计 第十一章 流类库与输入/输出.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
10 多載函數 10.1 多載概論 多載一般函數 多載成員函數 10-3
第 14 章 輸出與輸入.
第十三讲 文件流与 输出输入重载.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
第14章 输入输出与文件 输入输出是指程序与外部设备交换信息 C++把输入输出看成是一个数据流 输入流:外围设备流向内存的数据
Chapter 2 & Chapter 3.
第7章 输入/输出流 文件和I/O流概述 标准I/O流的对象及其成员函数 文件流.
程式結構&語法.
第三章 C++的语句和简单的程序设计 主要内容:
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
第3章C++面向对象程序设计 3.1 类和对象 作业1 3.2 继承和派生类 作业2 3.3 多态和虚函数 3.4 运算符重载 作业3
物件導向程式設計 CH2.
C++的檔案處理 綠園.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
挑戰C++程式語言 ──第7章 輸入與輸出.
第九章 物件導向-進階.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
第1章 C++面向对象程序设计要点 1.1 函数和函数参数 1.2 输入输出   1.3 类 1.4 抽象类型和模板.
挑戰C++程式語言 ──第9章 函數.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
题目详细要求、参考资料及更新发布于: 第一周 字符串与文件输入输出 题目详细要求、参考资料及更新发布于:
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第2章 文件操作 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
第9章 C++程序设计初步 9.1 C++的特点 9.2 最简单的C++程序 9.3 C++的输入输出 9.4 函数的重载
變數與資料型態  綠園.
题目详细要求、参考资料及更新发布于: 第二周 链表与指针 题目详细要求、参考资料及更新发布于:
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

第十一章 IO流与文件系统 丘志杰 电子科技大学 计算机学院 软件学院

I/O系统的作用 I/O系统为程序与I/O设备之间进行数据交互提供了途径。 应用程序 I/O系统 键盘 显示器 文件 磁 盘 2019/5/5 电子科技大学计算机学院 软件学院

C++为何有自己的I/O系统 C语言的标准输入输出函数和只能处理基本数据类型,对用户自定义类型无能为力。 2019/5/5 电子科技大学计算机学院 软件学院

C++流库的结构 C++流库是从继承方法建立起来的一个输入/输出类库,它具有两个平行的基类,即streambuf类和ios类,所有其他的流类都是从它们直接或间接地派生出来的。 streambuf类提供对缓冲区的低级操作: streambuf filebuf strstreambuf conbuf 2019/5/5 电子科技大学计算机学院 软件学院

ios类及其派生类提供用户使用流类的接口: istream ostream fstreambase strstreambase ifstream istrstream ofstream ostrstream constream fstream strstream iostream istream-withassign ostream-withassign iostream-withassign 2019/5/5 电子科技大学计算机学院 软件学院

有关头文件和预定义流对象 包含常用流类声明的头文件: 当开始执行C++程序时,有几个自动打开的预定义流: iostream.h——支持标准I/0操作 fstream.h ——支持文件I/0操作 strstream.h ——支持串I/0操作 iomanip.h——支持大多数流操纵符 当开始执行C++程序时,有几个自动打开的预定义流: cin——标准输入 cout——标准输出 cerr——不带缓冲标准出错信息输出 clog——带缓冲标准出错信息输出 2019/5/5 电子科技大学计算机学院 软件学院

输入和输出 istream和ostream是用户使用流库的主要界面之一。 istream提供了主要的输入操作,可以通过istream完成如下操作: 从输入流中获取单个字符。 从输入流中获取一行数据。 从输入流中获取指定字节数的数据。 将文件指针移动到指定位置,等等。 2019/5/5 电子科技大学计算机学院 软件学院

ostream提供了主要的输出操作,可以通过ostream完成如下操作: 刷新输出流。 向输出流中写入指定字节数的数据。 将文件指针移动到指定位置,等等。 istream和ostream分别重载了>>和<<两个运算符,用户可以很方便地使用这两个运算符对预定义类型进行输入和输出。用户也可以重载这两个运算符,从而能够输入和输出自定义类的对象。 2019/5/5 电子科技大学计算机学院 软件学院

格式控制 C++提供了两种格式控制的方法: 使用操作符 使用ios类中实现格式控制的成员函数 2019/5/5 电子科技大学计算机学院 软件学院

使用操作函数控制格式 C++ I/O流库提供了一些操作符(如下表所示),可以直接嵌入到输入/输出语句中来实现特殊格式的控制。 2019/5/5 电子科技大学计算机学院 软件学院

setbase(int) 设置基(0,8,10,16) output resetiosflags(long ) 清除参数指定的格式位 I/O dec 以十进制为基 I/O oct 以八进制为基 I/O hex 以十六进制为基 I/O ws 提取输入中的空白 input endl 插入换行并刷新流 output ends 在串后插入终止符 output flush 刷新流 output setbase(int) 设置基(0,8,10,16) output resetiosflags(long ) 清除参数指定的格式位 I/O setiosflags(long ) 设置参数指定的格式位 I/O setfill(int ) 设置填充字符 I/O setprecision(int) 设置显示精度 I/O setw(int) 设置显示域宽 I/O 2019/5/5 电子科技大学计算机学院 软件学院

例子 void main() { int a=100; cout<<hex<<a<<endl; cout<<oct<<a<<endl; cout<<dec<<a<<endl; }//结果: 64 144 100 2019/5/5 电子科技大学计算机学院 软件学院

使用ios类成员函数格式化 输入输出的格式由各种格式状态标志来确定。这些状态标志在状态量中各占一位,它们在ios类中定义为枚举量,如下表所示。 这些成员函数的功能包括: 设置格式状态标志(setf) 清除格式状态标志(unsetf) 获取格式状态标志(flag) 设置域宽、填充字符和设置精度(width、fill、precision等) 2019/5/5 电子科技大学计算机学院 软件学院

internal 在引导符或基指示符后填入字符 output dec 以十进制为基 I/O oct 以八进制为基 I/O skipws 跳过输入中的空白 input left 左对齐输出 output right 右对齐输出 output internal 在引导符或基指示符后填入字符 output dec 以十进制为基 I/O oct 以八进制为基 I/O hex 以十六进制为基 I/O showbase 在输出中显示基指示符 output showpoint 在输出中显示小数点 output uppercase 十六进制输出时,字母大写 output showpos 正整数前显示“+” output scientific 科学计数法显示浮点数 output fixed 定点形式显示浮点数 output unitbuf 在输出后立即刷新所有流 output stdio 输出后刷新stdout和stderr output 2019/5/5 电子科技大学计算机学院 软件学院

例子 void main() { int a=20; double b=111.11; cout.setf(ios::showpos|ios::scientific); cout<<a<<endl; cout<<b<<endl; }//结果: +20 +1.111100e+002 2019/5/5 电子科技大学计算机学院 软件学院

文件I/O C++把文件看作是字符序列。根据数据的组织形式,文件可分成ASCII文件和二进制文件两种。 ASCII文件又称为文本文件,它的每一个字节放一个ASCII代码,代表一个字符,这样便于对字符进行处理,也便于输出,但占用存储空间较多。 二进制文件是把内存的数据,按其在内存中的存储形式原样写到磁盘上。用二进制形式输出数据,可节省外存空间和转换时间,但一个字节并不对应一个字符。一般,中间结果常用二进制文件保存,以减少外存开销。 2019/5/5 电子科技大学计算机学院 软件学院

C++中进行文件I/O的基本过程 在C++中,要进行文件的I/O,必须首先创建一个流,然后将这个流与文件相关联,即打开文件,此时才能进行读/写操作,完成后再关闭这个文件。 2019/5/5 电子科技大学计算机学院 软件学院

文件的打开和关闭 C++有三种类型的文件流:输入文件ifstream,输出文件流ofstream,输入/输出文件流fstream。这些文件流都定义在fstream.h中。 要执行文件输入/输出,须做三件事: 在程序中要包含头文件fstream.h 建立流。建立流的过程就是定义流类的对象。 使用open()函数打开文件,也就是使某一文件与上面的某一流相联系。 2019/5/5 电子科技大学计算机学院 软件学院

举例 #include <string.h> #include <fstream.h> void main() { char buf[32]; ifstream in; memset(buf,0,sizeof(buf)); in.open("c:\\test.txt",ios::in); in>>buf; in.close(); ofstream out; out.open("c:\\test.txt",ios::out); strcat(buf,"123456789"); out<<buf; out.close(); } 2019/5/5 电子科技大学计算机学院 软件学院