在c语言的编程中,我们有时候需要用到文件的操作。文件可以分为文本文件和二进制文件,这篇文章主要是讲解对文本文件的操作。
文件的操作是包含在头文件
stdio.h
首先需要将文件打开
FILE *fp;
fp=fopen("filename","打开方式"); //该函数是
这里主要将解三个比较常见的操作读(r)、写(W)和追加(a)。
- 读(r):就是将数据从文件读到程序里,这要求所处理的文件一定要存在,否则就会读取失败
- 写(w):就是将数据写入文件中,所处理的文件可以存在,也可以不存在,如果不存在就会自动创建一个新的文件,然后再将所写的数据存入文件中。但是如果文件已经存在了,并且文件里面已经有数据了,如果执行写操作,那么原有的内容就会被覆盖。
- 追加(a):跟写操作有点类似,文件可以存在也可以不存在,但是如果文件存在,并且有数据,执行写操作时(fopen(“filename”,“a”))时,所写进的数据会存在已有数据的后面,不会覆盖原有数据。
下面就用一个例子来演示一下:
题目要求:
读取一个文件,并将文件里的数据打印出来。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char ch,filename[100]; //filename用来存储文件名
printf("请输入文件名");
gets(filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("读取文件失败\n");
exit(0);
}
while((ch=fgetc(fp))!=EOF) //等于EOF表示读到文件末尾,或者读取失败
{
putchar(ch);
}
fclose(fp); //将文件关闭
return 0;
}
这里需要强调一下,我们在处理完文件之后需要将文件关闭,主要有两方面原因:
1、文件是缓冲区中是数据的量达到一定是才写进文件的,要将文件关闭才能将数据写入文件。
2、打开一个文件就要占一部分内存,如果内存中打开的文件太多可能其他文件就不能打开,这方面也算是节约资源。