之前经常遇到C语言中文件的操作,经常因奇奇怪怪的函数而感到一头雾水,终于今晚有幸上了下程序设计基础课,对文件的操作有了一次系统性学习的体验,下面就稍作记录,以便查阅
文件类型指针
FILE *fp;//定义一个指向FILE类型数据的指针变量
用fopen函数打开数据文件
FILE*fp;
//定义一个指向文件的指针变量fp
fp=fopen(″a1″,″r″);
//将fopen函数的返回值赋给指针变量fp
用fclose函数关闭数据文件
fclose(fp);顺序读写数据文件
读写字符
读写字符串
用格式化的方式读写文本文件
fprintf(文件指针, 格式字符串, 输出表列);
fscanf(文件指针, 格式字符串, 输出表列);
例如:
fprintf (fp,″%d,%6.2f″,i,f); //将int型变量i和float型变量f的值按%d和%6.2f的格式输出到fp指向的文件中
fscanf (fp,″%d,%f″,&i,&f);
//磁盘文件上如果有字符“3,4.5”,则从中读取整数3送给整型变量i,读取实数4.5送给float型变量f
用二进制方式向文件读写一组数据
fread(buffer, size, count, fp);
fwrite(buffer, size, count, fp);
buffer: 是一个地址。对fread,它是用来存放从文件读入的数据的存储区的地址。对fwrite,是要把此地址开始的存储区中的数据向文件输出(以上指的是起始地址)。
size: 要读写的字节数。
count: 要读写多少个数据项(每个数据项长度为size)。
fp: FILE类型指针。
例如:
float f[10];
fread(f,4,10,fp); //从fp所指向的文件读入10个4个字节的数据,存储到数组f中
随机读写数据文件
rewind(文件指针);
使文件位置标记指向文件开头,无返回值
fseek(文件类型指针, 位移量, 起始点);
用fseek函数改变文件位置标记
“起始点”:用0,1或2代替,0代表“文件开始位置”,1为“当前位置”,2为“文件末尾位置”
“位移量”:指以“起始点”为基点,向前移动的字节数(长整型)
例如:
用ftell函数测定文件位置标记的当前位置
ftell函数的作用是得到流式文件中文件位置标记的当前位置,用相对于文件开头的位移量来表示。如果调用函数时出错(如不存在fp指向的文件),ftell函数返回值为-1L。
例如:
上述就是一些实用的文件操作,当然最好的方式就是通过实例来加以练习,后续会根据老师的大作业上传一些练习的源码,为避免撞车,会在大作业上交之后再上传,敬请期待~