首先,我们要知道什么是文件名——在大多是人看来,文件名就是文件本身的名字,但在c语言中,文件名包含3个部分,文件路径、文件名主干、文件后缀。
例如:
在上述例子中,test之前的都是文件路径,后面的txt是后缀,test是文件主干。
在程序设计中,我们一般谈论两种文件,程序文件、数据文件。.
程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。
数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
我们用test.文件往data文件中写入数据,需要数据时从data文件中读取。
但是这样的关系并不绝对,不是说只有后缀为.c文件才可以进行写入,可以是后缀为.c 的往.c中些,也可以是键盘往后缀.c的文件中写入,然后从后缀为.c的文件中读出数据在显示器中呈现。
1:文件的打开和关闭
缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”,该结构体类型是有系统
声明的,取名FILE。
例如当要打开一个text.exe的文件的时候,需要一个FILE* 的指针来接收;
如FILE* pf=fopen("text.exe","w");以写的方式打开文件,如果目录中没有这个文件,就是创建一个名为text的文件。
如果想要打开其他路径下的文件,那么就在文件前加上路径,为防止“\”被认定为转义字符,在“\”前再加一个“\”。
如果目录中没有这个文件,就会打开失败,将会给pf返回一个空指针(NULL)。
打开的文件需要用fclose(pf)来关闭。
2.文件的读写顺序
2.1 写文件(fputc)
fput的使用格式fputc(char c,FILE* pf )。fputc会自动加一。
读取pf中的字符放入字符c中。
上面的程序在文件中输入a到z;
上方的stdout是直接将数据输出到屏幕中。
程序运行就有三个流,stdin——标准输入流,stdout——标准输出流,stderr——标准错误流。
2.2 读文件
2.2.1 fgetc 的格式
读取正常返回字符的ASCII码值,否则返回EOF。
fgetc自动依次读取文件中的字符并打印。
使用while语句打印文件内所有字符
2.2.2 fputs(往文件中写入数据)

用stdout直接将字符输入到屏幕中
2.2.3 fgets(从文件中读取字符串)
返回string字符串,n是最多读取的字符个数,实际上最多读取n-1个字符。
若遇到错误或者读取文件结束,则返回NULL;
从data文件中读取一个字符串,既第一行字符串,放入到buf数组中
两次读取写入,则打印两行字符串
2.2.4 fwrite(写入数据)
将buffer中的数据写入到文件中(FILE*),size是写入文件的单位个数的大小(int为4),count是要写入的数据个数。
2.2.5 fread
从流(文件FILE*)中去读取count个大小为size的数据放入buffer中。