内容
数据层次
文件和流
第1页/共27页
数据层次
粒度从小到大
比特 (位/Bit)
1 or 0
稳定的电路
Character set字符集
数字、字母和专门的符号
字节(Byte: 8 bits)
1个字符型数据的存储单元(char)
程序员以字符为单位建立程序和数据项,计算机按位模式操作和处理这些字符
第2页/共27页
数据层次
域(Field/字段): 一组有意义的字符
name
记录(Record): 一组相关域的组合
class in C++
一个学生的信息:
name、no、college、hometown
记录关键字(key): 唯一标识、检索
文件: 相关记录的集合
社团的成员联系表
班级的年度学习成绩统计表
数据库(Database): 相关文件的集合
全校的学生基本信息表
第3页/共27页
数据层次
1
01001010
Judy
Judy
Green
Sally
Black
Tom
Blue
Judy
Green
Iris
Orange
Randy
Red
File
Record
Field
Byte (ASCII character J)
Bit
第4页/共27页
文件和流
文件:字节流
Ends with end-of-file marker
流:数据从一个对象流动到另一个对象,这种流动抽象为流。
cin>>a;
cout<<a;
0
3
1
2
4
5
8
9
...
...
n-1
end-of-file marker
6
7
第5页/共27页
C++流的继承结构
ios:对流状态进行设置,虚基类;
streambuf:提供对数据的缓冲支持;
istream、ostream、iostream:提取与插入
cin:istream类对象,处理标准输入,即键盘输入;
cout:ostream类对象,处理标准输出,即屏幕输出;
cerr:ostream类对象,处理标准出错信息,提供不带缓冲区的输出;
clog:ostream类对象,处理标准出错信息,提供带缓冲区的输出;
ios
streambuf
istream
ostream
iostream
第6页/共27页
C++文件流的继承结构
fstreambase:虚基类;
filebuf:提供对文件的缓冲支持;
ifstream、ofstream、fstream:写入与读出
fstreambase
filebuf
ifstream
ofstream
fstream
第7页/共27页
字符文件和二进制文件
字符文件:又称ASCII文件或文本TEXT文件
以一个字节存放一个ASCII码,代表一个字符。例如,32767需要使用5个字节表示,即: 51 50 55 54 55 (十进制表示的ASCII),而浮点数需要使用6个字节表示,即49 51 54 46 53 54。
二进制文件
是指以数据在内存中存储形式原样输出(存放)到文件上去,例是一个float型实数,它在内存中占有4个字节长度。将该4个字节按其在内存中的原来形式存放到文件中。无论该float型数有多大,都只占用4个字节。
第8页/共27页
数据存在形式
01111111
11111111
00110011
00111110
00110111
00110110
00110111
二进制文件中保存方式
ASCII文件中的存在方式
3(51)
2(50)
7(55)
6(54)
7(55)
整数32767在内存
中的存储形式
第9页/共27页
文件操作
为了调用磁盘文件,缓冲文件系统为每一个文件开辟了一个“文件信息区”,用来存放与文件操作有关的信息。
在C++中,头文件中定义了文件类(型),包括:
ifstream: 它支持从输入文件中提取数据的各种操作
ofstream:它支持把数据写入文件中的各种操作;
fstream: 支持数据的输入与输出操作
使用上述对象需要
#include<fstream>
第10页/共27页
C文件操作PPT课件 来自淘豆网m.daumloan.com转载请标明出处.