python的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也就是只读的方式打开文件,后面则不允许写数据,否则会出错,一定要保持一致!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值