1.文本文件就是内存的数据以字符编码(比如 ASCII)的方式保存到外存(比如硬盘、优盘等),这类文件用记事本等文本编辑器就可查看。二进制文件是把内存中的数据及结构原封不动的平移复制到文件的过程,此时用文本编辑器打开文件通常是乱码的现象,所以得用专门的软件程序才能读取其数据进行打开
2.文件打开函数fopen 函数来自 stdio.h。其函数声明为:
FILE * fopen ( const char * filename, const char * mode );
其参数 filename 是文件的存储路径及名称。参数 mode 为文件的打开方式
当文件处理结束后务必用 fclose 函数关闭文件缓冲区。另外由于缓冲区已经被释放回收,所以指向文件缓冲区的指针变量应设置为NULL
删除文件与修改文件名的函数remove
给文件改名用 rename 函数
int remove ( const char * filename );
int rename ( const char * oldname, const char * newname );
两个函数返回值如果是 0 代表处理成功。非零就是处理失败的错误编号
4.创建文件的方法
5.向文本文件写入数据的函数
那么输出呢?
6.如何读取一个文本文件中不确定长度的所有整数?
7.文件光标指什么?
当文件以 r(read)方式打开后,会有一个光标(cursor)指向文件内容的当前位置,当我们不断读取内容时,光标会不断后移,就如同我们看书时的目光
8.如何得到和设置文件光标位置?
ftell 函数能够返回当前的光标位置
可以用rewind函数让光标回到开头处。或者用fsetpos函数
把光标放置在某个位置点上。
fsetpos函数:
9.如何对一个文本文件的内容进行改写操作?
10.二进制文件的读写操作函数 fread 与 fwrite 的用法?
当我们要把内存中的一片字节复制到文件或者反之把文件中的一段二进制字节复制到内存,这样的基于二进制 01 数据的平移复制操作都可以用 fread 和 fwrite 函数来实现。其函数声明为:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
实际读取的大小 fread ( void * 读取后放置的内存位置,size_t 一个数据的字节数, size_t 数据总数量,FILE * 从哪个文件缓冲区读取);
fwrite 函数的参数与返回值的逻辑类似。区别是从哪个内存地址读取,然后写入到哪个文件缓冲区。
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
11.如何实现文件的复制功能?
具体代码如下:
#include <stdio.h>
int main ()
{
FILE * from = fopen(“E:\保你平安.mp4”,“rb”);
FILE * to = fopen(“d:\tf\bnpa.mp4”,“wb”);
unsigned char buffer[1024];
int len;
if ( from && to)
{
while ( (len=fread(buffer,sizeof(char),1024,from))>0 )
{
fwrite(buffer, sizeof(char), len, to);
}
fclose(from );
fclose(to);
}
return 0;
}
结尾奉上一份思维导图: