内容正文:
第11章文件
第11章文件
文件概述
文件的打开与关闭
以一个字节为单位读写文件
使用文本文件
以存储单元为单位读写文件
标准设备文件
文件的随机读写
使用文本文件保存数据
这节课我们学习使用文本文件保存数据
3
数据类型的特点
如short i = 16705;,整型变量i只占用2个字节,且可以直接进行算术运算,如i + 3的值是16708,但查看值时需转换成字符串,printf("%d", i + 3);。
char a[6] = "16705";,数组a中存储了字符串"16705",查看值时无需转换,printf("%s", a);。但"16705"只有转换成整数16705后才能进行算术运算。
若16705只是暂存的中间结果,还需进行算术运算才能得到最终结果,则宜存入二进制文件中。若16705是最终结果,保存数据的目的是记录结果,则宜存入文本文件中。
0100000101000001
二进制文件
(16705)
0011000100110110
0011011100110000
00110101
文本文件
(16705)
如short i = 16705;,整型变量i只占用2个字节,且可以直接进行算术运算,如i + 3的值是16708,但查看值时需转换成字符串,printf("%d", i+3);。
char a[6] = "16705";,数组a中存储了字符串"16705",查看值时无需转换,printf("%s", a);。但"16705"只有转换成整数16705后才能进行算术运算。
若16705只是暂存的中间结果,还需进行算术运算才能得到最终结果,则宜存入二进制文件中。若16705是最终结果,保存数据的目的是记录结果,则宜存入文本文件中。
4
文本文件与二进制文件
若数据已是最终的处理结果,保存数据的目的是记录结果,则将数据转换成字符串,用文本文件存储。文本文件的存储单元都是字符型,格式简单,可以用多种软件查看内容。
若数据还需继续处理,则用同类型的存储单元存储数据时,存取过程均无需类型转换,便于恢复处理过程。
二进制文件中存储单元的类型不固定,因此,只有确定了每个存储单元的类型,才能正确使用文件中的数据。
若数据已是最终的处理结果,保存数据的目的是记录结果,则将数据转换成字符串,用文本文件存储。文本文件的存储单元都是字符型,格式简单,可以用多种软件打开查看内容。
若数据还需继续处理,则用同类型的存储单元存储数据时,存取过程均无需类型转换,便于恢复处理过程。
二进制文件中存储单元的类型不固定,因此,只有确定了每个存储单元的类型,才能正确使用文件中的数据。
5
查看整型变量i的值。
有short i = 16705;,则printf("%hd", i);会输出变量i的值16705。printf函数执行时会先得到字符串"16705",然后依次输出每个字符。
用文本文件保存整数16705时,需先得到字符串"16705",然后将这5个字符写入文件中。
有short i = 16705;,则printf("%hd", i);会输出变量i的值16705。printf函数执行时会先得到字符串"16705",然后依次输出每个字符。
用文本文件保存整数16705时,需先得到字符串"16705",然后将这5个字符写入文件中。测试程序如下。
6
fprintf函数
库函数printf先得到字符串形式的数据,然后将字符串显示在程序运行窗口。一般形式为:printf(格式字符串, 输出列表),
fprintf(文件指针变量, 格式字符串, 输出列表),库函数fprintf先得到字符串形式的数据,然后将数据存储到文件指针变量指向的文件中。
fprintf(fp,"%hd", i);就可以完成上例中的一系列操作。
库函数printf先得到字符串形式的数据,然后将字符串显示在程序运行窗口。一般形式为:printf(格式字符串, 输出列表),
fprintf(文件指针变量, 格式字符串, 输出列表),库函数fprintf先得到字符串形式的数据,然后将数据存储到文件指针变量指向的文件中。
fprintf(fp,"%hd", i);就可以完成上例中的一系列操作。
7
例11-7 fprintf函数的用法。
fprintf函数与printf函数的用法区别在于fprintf函数把得到的值输出字符串存入文本文件中;printf函数把得到的输出字符串显示到程序运行窗口中。
8
从文本文件中读取数据
用户通常把待处理的数据存放在文本文件中,如in.txt文件中有两个需求和的整数23和32。
用户通常把待处理的数据存放在文本文件中,如in.txt文件中有两个需求和的整数23和32。
程序中先读取文本文件中的字符,再转化成整数,最后求和。
9
用户与字符