C语言基础 14 文件操作

来源:互联网 发布:一千个哈姆雷特 知乎 编辑:程序博客网 时间:2024/06/03 05:06

Calderon函数也可以动态分配内存

这个函数可以把分配的所有内存内容都设置成0

 

这个函数也需要包含stdlib.h头文件

这个函数需要两个参数,第一个参数表示希望分配的存储区个数,第二个参数表示单个存储区的大小

 

这个函数的返回值是分配好的第一个存储区地址

 

这个函数也可能失败,如果失败则返回值是NULL

 

realloc函数可以调整一段动态分配内存的大小,(尽量少使用这个函数

 

所有文件都采用二进制方式记录数据

如果文件里所有二进制数据都有对应的字符就把这种文件叫做文本文件

除了文本文件之外的所有文件都叫做二进制文件

 

文本文件和二进制文件各自采用不同的方法进行操作(可以把文本文件当作二进制文件

进行操作)

 

文件操作基本步骤

1.打开文件(fopen)

2.操作文件(fread/fwrite)

3.关闭文件(fclose)

 

fopen函数需要两个参数

1.代表要打开的文件路径

2.代表打开方式(决定程序中可以对文件做什么操作)

 

打开方式有如下选择

"r"     只能察看文件内容不能修改

        只能从文件头开始察看

        如果文件不存在则打开会失败

"r+"    "r"多了修改功能

"w"     只能修改文件内容不能察看

        只能从文件头开始修改

        如果文件不存在就创建文件

如果文件存在就删除文件的所有内容

"w+"    "w"多了察看功能

"a"     只能修改不能察看

        只能在文件末尾追加新的内容

        如果文件不存在就创建新文件

如果文件已经存在不会修改

文件原有内容

"a+"    "a"多了察看功能

 

"b"也是一种打开方式

这种打开方式可以和上面的任何一种打开方式混用

 

这个打开方式表示程序中要采用二进制的方式操作文件

 

fopen函数的返回值应该记录在文件指针里,只有文件指针才能在程序中代表打开的文件

 

fopen函数有可能失败,如果失败则返回值是NULL

 

完成对文件的所有操作之后必须使用

    fclose函数关闭文件

fclose函数需要文件指针作为参数

文件关闭之后文件指针成为野指针,必须恢复成空指针

 

文件操作分为两种

1.把内存中一组连续存储区的内容拷贝到文件里(写文件)

2.把文件里一组连续存储区的内容拷贝到内存里(读文件)

 

fread函数可以采用二进制的方式读文件内容

fwrite函数可以采用二进制的方式写文件内容

 

这两个函数都需要四个参数

1.内存里第一个存储区的地址

2.单个存储区的大小

3.希望操作的存储区个数

4.文件指针

 

这两个函数的返回值表示实际操作的存储区个数

 

fprintf函数可以按照格式把数据记录到文本文件里

这个函数的第一个参数就是文件指针,其他参数就是printf函数的参数

 

fscanf函数可以按照格式从文本文件里获得数字并记录到变量存储区里

这个函数的第一个参数是文件指针,后面的参数和scanf函数的参数一样

 

计算机里为每个打开的文件保留一个整数,这个整数表示下一次文件读写操作的开始位置

这个位置一定在两个相邻字节之间

这个整数的数值就是文件头到这个位置之间包含的字节个数

这个整数叫做文件的位置指针

每当从文件中得到n个字节或向文件里写入n个字节后位置指针都会增加n

 

 

ftell函数可以获得当前位置指针的数值

 

rewind函数可以把位置指针的数值设置成0

 

fseek函数可以把位置指针设置到任意位置

fseek函数调用语句里需要指定一个基准位置以及目标位置到基准位置之间的距离

 

SEEK_SET   0    把文件头作为基准位置

SEEK_CUR   1    把当前位置作为基准位置

SEEK_END   2    把文件尾作为基准位置

 

如果目标位置在基准位置后边则距离用 正数表示

如果目标位置在基准位置前边则距离用负数表示

距离的绝对值就是两个位置之间包含的字节个数

原创粉丝点击