今天在读取文件的过程中遇到了一些问题,所以查了一些资料做了一些实验,总结下C语言中的文件读取。
1、文件的打开方式
"r"(只读) 为输入打开一个文本文件
"w"(只写) 为输出打开一个文本文件
"a"(追加) 为追加打开一个文本文件
"rb"(只读) 为输入打开一个二进制文件
"wb"(只写) 为输出打开一个二进制文件
"ab"(追加) 为追加打开一个二进制文件
"r+"(读写) 为读/写打开一个文本文件
"w+"(读写) 为读/写创建一个文本文件
"a+"(读写) 为读/写打开一个文本文件
"rb+"(读写) 为读/写打开一个二进制文件
"wb+"(读写) 为读/写创建一个二进制文件
"ab+"(读写) 为读/写打开一个二进制文件
2、文件的打开操作
FILE *fp=fopen("a.bin".c_tr(),"rb+")
3、文件的读取操作
int a;
fread(&a,sizeof(int),1,fp)
4、文件的写操作
int a=10;
fwrite(&a,sizeof(int),1,fp)
5、文件指针的定位操作
fseek(fp,0,SEEK_SET);//移动到文件开头
fseek(fp,sizeof(int),SEEK_SET);//从文件开头处移动4个字节
fseek(fp,0,SEEK_END);//移动到文件末尾
fseek(fp,0,SEEK_CUR);//当前位置
fseek(fp,-4,SEEK_END);//从文件末尾向后移动4个字节
6、统计文件的大小
fseek(fp,0,SEEK_END);
long a=ftell(fp);
7、判断文件存不存在
int access(const char *filename, int mode);//函数原型
mode:
0 (F_OK) 只判断是否存在
2 (R_OK) 判断写入权限
4 (W_OK) 判断读取权限
6 (X_OK) 判断执行权限
if(access("a.txt".c_tr(),1)==0)
{
cout<<exists<<endl;
}