C语言文件管理

C语言文件管理:

1、 哪些可以放在头文件中,哪些不可以放在头文件中

A) 函数声明可以放在头文件中,函数定义(函数体)不可以放在头文件中

例如:Int Find();

B) 全局变量声明(extern)可以放在头文件中,函数定义(函数体)不可以放在头文件中

例如:extern struct SStud g_stud[100];

C) 常量声明(定义)可以放在头文件中

例如:#define COUNT sizeof(g_stud[100])/sizeof(g_stud[0])

D) 结构体声明(定义)可以放在头文件中

例如:struct SStud

{

           IntnNumb;

           CharsName[20];

};

 

2、 C语言文件操作

A) 文件的目的是保存进程中的数据,下次启动进程时还要使用

B) 学习操作,主要学习4大主要函数:

①  、打开文件函数:fopen

②  、关闭文件函数:fclose、

③  、读文件函数:fwrite

④  、写文件函数:fwrite

⑤  、其他fputc,fputc,fprintf,rewind等等函数可以次要了解,头文件都是stdio.h

 

3、 fopen函数:建立一个FILE*指针,连接到文件上

函数原型:FILE * fopen(const char *path , const char *mode);

参数:filename:指定绝对路径或者相对路径的文件名

Mode:分别指定

“r”:当文件存在返回有效的文件指针,当文件不存在返回空指针

“w”:如果文件不存在,创建文件,如果文件存在,清空该文件并重写内容,失败的原因有:①文件的路径有问题②文件只读③文件被占用④windows磁盘安全限制写入

“a”:如果文件不存在,创建文件,如果文件存在,不清空原有内容,在原有内容后面

“w”和”a”都会返回空指针。

         返回值:FILE*文件指针类型,可以认为是驾驶员的手柄,把文件操作比作对汽车的驾驶

 

4、 fclose:断开FILE*文件指针和文件的链接

         a)不能带入空指针

 

5、fwrite和fread函数

a)fwrite:调用fwrite必须是使用“w”或者“a”模式打开

memcpy是将一段缓冲区的内容复制到另外一段缓冲区上

fwrite是将一段缓冲区的内容复制到磁盘文件上

fread是将磁盘上的内容读取到一段缓冲区上

 

6、  b)扩展模式:

t:缺省时text模式,不推荐使用

b:二进制模式,推荐使用

c)其他读写模式:

“r+”:可读可写,主要特征和失败原因同r模式

“w+”:可读可写,主要特征和失败原因同w模式

“a+”:可读可写,主要特征和失败原因同a模式

 

7、其他的f族函数:

         a)getc :getc等价于fread(&c,1,sizeof(char),fp)

         b)putc(fputc):等价于fwrite(&c,1,sizeof(char),fp)

         c) fputs:等价于fwrite(s,strlen(s),fp)

         d) fgets: 用fwrite()不容易实现

 

8、文件寻址函数

         a)ftell:告诉当前文件指针距离头部的位置(字节)

         b)fseek:将文件指针放置到距离原点的某个距离上

                          三种原点:文件头,文件尾,当前位置

附录:如何查找一个文件是否存在?

         fopen(…,”r”)返回值是NULL代表不存在

你可能感兴趣的:(C语言文件管理)