欢迎阅读新一期的c语言学习模块————文件处理操作
✒️个人主页:-_Joker_-
️专栏:C语言
代码仓库:c_code
欢迎大佬们的阅读和三连关注,顺着评论回访
与普通文件载体不同,文件是以硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等等。文件通常具有点+三个字母的文件扩展名,用于指示文件类型(例如,图片文件常常以KPEG格式保存并且文件扩展名为.jpg)。
将数据放入文件中,相比代码程序中堆栈上的数据,其优点在于可以随时做到需要时添加、舍弃时删除,数据可以持久化。
文件一般讲两种:程序文件和数据文件;
程序文件:
包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件:
包括程序运行时所读写的数据。本篇所涉及的就是数据文件。
文件的操作一般分三步:1.打开文件;2.读/写;3.关闭文件;
若想要对文件进行操作,则需要用到文件指针
想要对文件进行操作,“文件指针”就是一个关键桥梁
原理:每个被使用的文件,都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如:文件名、文件状态、文件位置等),这些信息被保存到一个结构体中,系统为其声明为FILE,每当打开一个文件的时候,系统就会根据情况自动创建一个FILE结构的变量,并且通过FILE*的指针来维护这个结构。
文件指针可以用如下方式使用:
FILE* pf;
这个语句的意思是定义一个文件指针变量pf,它可以指向某个文件的文件信息区,通过其即可访问到该文件。
一般在C语言中,我们用以下的几个函数对文件进行打开/关闭操作
1.
fopen —— 打开文件
FILE * fopen ( const char * filename, const char * mode );
2.
fclose—— 关闭文件
int fclose ( FILE * stream );
如下图:
下面通过几个案例来讲解一些文件的读写函数
1.打开文件
FILE *fopen( const char *filename, const char *mode );filename:文件的路径
mode:打开模式
例:
int main() { FILE* f; f = fopen("test.txt", "w"); if (f != NULL) { fputs("fopen example", f); fclose(f); f=NULL; } return 0; }
注意:
1.文件是否打开成功
2.关闭文件
3.文件指针置空
2.关闭文件
函数原型:int fclose( FILE *stream );
if(fclose(f)!=0)
{
printf("File cannot be closed/n");
exit(1);
}
else
{
printf("File is now closed/n");
}
3.读取字符
int fgetc ( FILE * stream );
#include
int main ()
{
FILE * pFile;
int c;
int n = 0;
pFile = fopen ("D:\\test.txt", "r");
if (pFile == NULL) perror ("Error opening file"); // 打开失败
else
{
while (c != EOF)
{
c = fgetc (pFile); // 获取一个字符
if (c == '*') n++; // 统计符号 '*' 在文件中出现的次数
}
fclose (pFile); // 一定记得要关闭文件
printf ("The file contains %d sign characters (*).\n",n);
}
return 0;
}
4.写入字符
int fputc( int c, FILE *stream );c:要写入的字符
char ch;
FILE* pf = fopen("test.txt", "w");
if (pf == NULL)
{
perror("error opening file");
exit(0);
}
ch = getchar();
while (ch != '*')
{
fputc(ch, pf);
ch = getchar();
}
fclose(pf);
5.删除文件
int remove ( const char * filename )
本次仅先介绍以上几个函数,如果有需要了解其他函数,请参考文件操作函数汇总
以了解更多文件操作函数
以上是对文件操作的讲解与介绍,感谢各位的阅读和支持