Open file
FILE *fp = fopen("file_name","mode")
mode参数解释:
“r”:以只读的形式打开文本文件(不存在则出错)
“w”:以只写的形式打开文本文件(若不存在则新建,反之,则从文件起始位置写,覆盖原内容)
“a”:以追加的形式打开文本文件(若不存在,则新建;反之,在原文件后追加)
“r+”:以读写的形式打开文本文件(读时,从头开始;写时,新数据只覆盖所占的空间)
“wb”:以只写的形式打开二进制文件
“rb”:以只读的形式打开二进制文件
“ab”:以追加的形式打开一个二进制文件
“rb+”:以读写的形式打开二进制文件。
“w+”:首先建立一个新文件,进行写操作,然后从头开始读(若文件存在,原内容将全部消失)
“a+”:功能与”a”相同。只是在文件尾部追加数据后,可以从头开始读
“wb+”:功能与”w+”相同。只是在读写时,可以由位置函数设置读和写的起始位置
“ab+”:功能与”a+”相同。只是在文件尾部追加数据之后,可以由位置函数设置开始读的起始位置
判断文件是否打开失败
if(fp ==NULL) {
printf("open file fail!");
exit(1);
}
file operation function
文件的打开
- fopen():打开文件
文件的关闭
- fclose():关闭文件
文件的读写
- fgetc():读取一个字符
- fputc():写入一个字符
- fgets():读取一个字符串
- fputs():写入一个字符串
- fprintf():写入格式化数据
- fscanf():格式化读取数据
- fread():读取数据
- fwrite():写入数据
文件状态检查
- feof():文件是否结束
- ferror():文件读/写是否出错
- clearerr():清除文件错误标志
- ftell():文件指针的当前位置
文件指针定位
- rewind():把文件指针移到开始处
- fseek():重定位文件指针
Usage
文件类型分为:
文本文件和二进制文件。
对于竞赛中出现的,都是.txt结尾的文件文件。
文本文件是以字符编码的方式进行保存的。
因此我们读取文件中矩阵的话,需要创建一个字符数组进行存储。
FILE *fp = fopen("2020.txt","r");
if(!fp){
printf("open file fail!\n");
exit(1);
}
char cur;
while(!feof(fp)){
cur = fgetc(fp);
if(cur=='\n'){
n++;
m=0;
continue;
}
map[n][m++]=cur;
}
n++;