1、文件
文件分为文本文件和二进制文件。硬盘上存在的“文件”肯定是二进制的。
文本文件:里面数据是数据的ASCII值的二进制。
二进制文件:存在的是数据的二进制。
2、文件的打开和关闭
Linux环境下,文件的打开和关闭时不分二进制的文件或文本文件。
文件的打开:
FILE *fopen(const char *path,const char *mode);
path:描述文件路径的字符串
mode:打开文件的方式(字符串)
“r” 以只读的方式来打开文件,文件不存在则打开失败。
“w”以只写的方式打开文件,文件不存在则创建,存在则清空。
“a”以只写的方式打开文件,文件不存在则创建,如果存在则在后面追加上去。
“r+”具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容。
“w+”具有读写属性,写的时候如果文件存在,会被清空,从头开始写。
“a+”以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
int fclose(FILE *fp);
//关闭文件后文件指针要置空。
3、文本文件的读写方式:
fprintf(FILE* fp,占位符,变量名);
FILE* frw = fopen("text.tet","w");
sprintf(frw,"%d %s ",....);
fclose(frw);
frw =NULL;
fscanf(FILE* fp,占位符,变量地址);
二进制文件的读写:
在windows打开二进制文件时,权限要加"rb","wb","ab"
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr 要写入的数据的首地址
size 一次写入多少个字节
nmemb 写入多少次size
stream 文件指针
返回值是写入成功的次数
int arr[5]= { 9,1,8,2,3};
FILE* fwp = fopen("text.dat","wb");
int ret =fwrite(arr,sizeof(int),5,fwp);
printf("%d",ret)
//关闭文件后文件指针要置空。
3、文本文件的读写方式:
fprintf(FILE* fp,占位符,变量名);
FILE* frw = fopen("text.tet","w");
sprintf(frw,"%d %s ",....);
fclose(frw);
frw =NULL;
fscanf(FILE* fp,占位符,变量地址);
二进制文件的读写:
在windows打开二进制文件时,权限要加"rb","wb","ab"
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr 要写入的数据的首地址
size 一次写入多少个字节
nmemb 写入多少次size
stream 文件指针
返回值是写入成功的次数
int arr[5]= { 9,1,8,2,3};
FILE* fwp = fopen("text.dat","wb");
int ret =fwrite(arr,sizeof(int),5,fwp);
printf("%d",ret)
size_t fread(const void *ptr, size_t size, size_t nmebe,FILE *stream);
ptr 读取到的数据存储
size 每次读取多少个字节
nmemb 读取多少次size
stream 文件指针
返回值是成功读取的次数
ptr 读取到的数据存储
size 每次读取多少个字节
nmemb 读取多少次size
stream 文件指针
返回值是成功读取的次数