打开文件fopen函数的用法 | 您所在的位置:网站首页 › c语言中fopen函数如何使用 › 打开文件fopen函数的用法 |
在C语言中,对文件操作之前,首先需要打开文件,使用的函数是fopen函数,它的作用是打开文件,获取该文件的文件指针,方便后续操作。函数原型为: FILE *fopen(const char *filename, const char *mode);可以看得出来,该函数需要两个字符串类型的参数,第一个是文件名,既要操作的文件对象。第二个是打开方式,这里的打开方式只是,对文件以何种模式打开,包括文本模式打开还是二进制打开、是读还是写还是追加等等等等,具体类型如下表,可以根据情况使用: 参数作用r以只读方式打开文件,该文件必须存在。r+以读/写方式打开文件,该文件必须存在。rb+以读/写方式打开一个二进制文件,只允许读/写数据。rt+以读/写方式打开一个文本文件,允许读和写。w打开只写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则创建该文件。w+打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则创建该文件。a以附加的方式打开只写文件。若文件不存在,则会创建该文件;如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(EOF 符保留)。a+以附加方式打开可读/写的文件。若文件不存在,则会创建该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(EOF符不保留)。wb以只写方式打开或新建一个二进制文件,只允许写数据。wb+以读/写方式打开或新建一个二进制文件,允许读和写。wt+以读/写方式打开或新建一个文本文件,允许读和写。at+以读/写方式打开一个文本文件,允许读或在文本末追加数据。ab+以读/写方式打开一个二进制文件,允许读或在文件末追加数据。函数的返回值则表示打开成功后的文件指针,格式为FILE类型,是一个结构体类型,供后面使用,如果打开失败,则返回NULL。 FILE结构体类型虽用不到,但可以了解,定义如下: typedef struct { int level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ int bsize; /* Buffer size */ unsigned char _FAR *buffer; /* Data transfer buffer */ unsigned char _FAR *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */ } FILE; /* This is the FILE object */比如:如果我们现在想打开一个D盘根目录下的abc.dat,并且想读出该文件里的数据,那么我们可以这样写: FILE *fp; fp=fopen("d:\\abc.dat","r") //后面通过fp指针开始读文件值得说明的是: 1. 该文件的目录是绝对路径,因此这样写,如果不写盘符比如abc.dat则表示相对路径,表示与本程序同目录下。 2. 路径中的反斜杠虽然只有一个,但这里打了两个,原因在于C语言字符串中对反斜杠要当作转义字符处理,因此要用两个反斜杠才能表示一个。 3. 一旦以r也就是只读的方式打开文件,后面则不允许写数据,否则会出错,一定要保持一致! |
CopyRight 2018-2019 实验室设备网 版权所有 |