内容正文:
第11章文件
第11章文件
文件概述
文件的打开与关闭
以一个字节为单位读写文件
使用文本文件
以存储单元为单位读写文件
标准设备文件
文件的随机读写
文件概述
存储器
存储器可分成内存储器和外存储器。
内存又称主存,通常是指内存条;外存如硬盘、优盘等。
内存存取速度快,但断电后内存中数据会丢失;外存存取速度慢,但断电后外存中数据能长期保存。
变量对应于内存中的存储单元,程序只加工处理内存中的数据。需长期保存数据时,程序将内存中的数据存储到外存中。使用外存中的数据时,程序需将外存中的数据读取到内存中。
存储器可分成内存储器和外存储器。
内存又称主存,通常是指内存条;外存如硬盘、优盘等。
内存存取速度快,但断电后内存中数据会丢失;外存存取速度慢,但断电后外存中数据能长期保存。
变量对应于内存中的存储单元,程序只加工处理内存中的数据。需长期保存数据时,程序将内存中的数据存储到外存中。使用外存中的数据时,程序需将外存中的数据读取到内存中。
4
文件
外存中数据管理的基本单位是文件,一个文件相当于外存中的一块存储空间。文件中的数据能长期保存,易于共享。
以文件名标识的外存空间以字节为单位,可看成字节的序列。文件中的外存空间也可看成由与保存数据的类型相同的存储单元组成。
同名的文件可以出现在不同的目录中,因此,确定文件时应包含目录,如"D:\\c语言\\c例题\\1_1.c"。文件名中句点.后面的c是文件的扩展名。
文件的扩展名表明了文件的格式,即文件中存储单元的组织方式。文件扩展名c表示文件是C语言源文件。
外存中数据管理的基本单位是文件,一个文件相当于外存中的一块存储空间。文件中的数据能长期保存,易于共享。
以文件名标识的外存空间以字节为单位,可看成字节的序列。文件中的外存空间也可看成由与保存数据的类型相同的存储单元组成。
同名的文件可以出现在不同的目录中,因此,确定文件时应包含目录,如"D:\\c语言\\c例题\\1_1.c"。文件名中句点.后面的c是文件的扩展名。
文件的扩展名表明了文件的格式,即文件中存储单元的组织方式。文件扩展名c表示文件是C语言源文件。
字符串常量中\用\\表示。
5
用文件存储16705
若short i = 16705;,则程序中16705是一个short型整数。由语句printf("%hx", i);的输出可知16705的存储状态为4141,即0100000101000001(二进制形式)。
文件中也可用一个short型存储单元保存整数16705。
某文件中有一个short型存储单元,存储状态如图所示,
其值是多少呢?
先将文件中的数据读取到short型变量i中,然后
printf("%hd", i);的输出结果就是其值。
0100000101000001
文件中有一个
short型存储单元
若short i = 16705;,则程序中16705是一个short型整数。由语句printf("%hx", i);的输出可知16705的存储状态为4141,即0100000101000001(二进制形式)。
文件中也可用一个short型存储单元保存整数16705。
某文件中有一个short型存储单元,存储状态如图所示,
其值是多少呢?
先将文件中的数据读取到short型变量i中,然后
printf("%hd", i);的输出结果就是其值。
问题是怎样知道文件中这2个字节存储的数据是一个short型整数呢?
6
用文件存储16705
若char[5]={'1', '6', '7', '0', '5'};,则程序中16705是五个字符。查ASCII码表可知存储状态分别为0011 0001 0011 0110 0011 0111 0011 0000 0011 0101。
文件中用5个char型存储单元分别保存这五个字符。
某文件中有5个chart型存储单元,存储状态如图所示,
它们的值是多少呢?
先读取文件中1个字节的数据到char型变量c中,
再用printf("%c", c);输出;重复5次。
0011000100110110
0011011100110000
00110101
文件中有五个
字符型存储单元
若char[5]={'1', '6', '7', '0', '5'};,则程序中16705是五个字符。查ASCII码表可知存储状态分别为0011 0001 0011 0110 0011 0111 0011 0000 0011 0101。
文件中用5个char型存储单元分别保存这五个字符。
某文件中有5个chart型存储单元,存储状态如图所示,
它们的值是多少呢?
先读取文件中1个字节的数据到char型变量c中,
再用printf("%c", c);输出;重复5次。
7
文本文件与二进制文件
存储单元全