写这篇文的原因纯属自己正在看这章的知识,所以做一个小整理。学C很久了,用的书是谭浩强的《C程序设计》第四版,这书可以说是C入门必备了。它是一本完全不需要广告的书。(虽然现在听起来有点像一个广告,但其实只是我啰嗦而已 ✧(≖ ◡ ≖✿) ) 废话不要太多,我快点开始本篇的主要内容吧。
fopen(文件名,使用文件方式);
例如:
fopen("a1","r");
a1表示要打开的文件名,r表示要对a1文件进行只读
注意:
① fopen()函数会返回文件信息区的地址,所以我们用一个文件指针来接收,定义文件变量也可以,但指针更方便,推荐使用.
② a1文件默认是在同目录下,若不是,则要写上完整文件名。
即:
fopen("D:\\practice\\a1.dat");
'\'在C中做转义字符用,所以要再加一个'\' 所以完整操作就是:
FILE* fp;
fp = fopen("D:\\practice\\a1.dat","r");
这样就使得文件指针fp与文件a1相关联,fp指向a1。如果是对一个不存在的文件进行操作,那么会出错,fopen函数返回NULL,所以最好用判断语句判断一下。 常用方法:
if((fp=fopen("file","r"))==NULL)
{ printf("cannot open this file\n");
exit(0); //关闭程序
}
其他的操作如下图:
fclose(文件指针);
关闭文件是撤销文件信息区和文件缓冲区,使指针不再指向该文件,如果要让指针再次指向,重新打开文件,将信息区地址赋给指针即可。 例如:
fclose(fp);
成功关闭,fclose()函数返回0,否则返回EOF(-1)
顺序读写顾名思义就是按照从前往后、从上到下有顺序的读写文件。 字符:
fgetc(fp); //从fp指向的文件读入一个字符
fputc(ch,fp); // 把字符ch写到fp所指向的文件中
字符串:
fgets(str,n,fp);
从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中 Q:为什么是n-1呢? 因为要在最后加上一个'\0'字符
fputs(str,fp);
把str所指向的字符串写到文件指针变量fp所指向的文件中 进行写操作时,建议人为输出'\n',即加上:
fputs("\n",fp);
这样以后要读回数据时,字符串有分隔,不会混乱
随机读写是可以对任何位置上的数据进行操作。 为了对读写进行控制,系统为每个文件设置了一个文件读写位置标记
1.rewind函数
rewind(fp);
将文件位置标记返回fp文件头
2.fseek函数
fseek(文件类型指针,位移量,起始点);
位移量:以起始点为基点 起始点:用 0, 1 , 2 分别表示“文件开始位置”,“当前位置”,“文件末尾位置”
3.ftell函数
ftell(fp);
返回文件位置标记的当前位置
以上就是全部内容啦,关于文件的操作在实际运用中比较重要,这里都是比较基础的,只做为介绍,有兴趣的可以继续往下学习和深入了解。