20161216C语言基础19_文件处理函数

C语言文件处理:


    r:以只读打开文件,如果文件不存在,则返回空指针,打开失败。

   w: 以只写打开,没有文件就新建文件,有文件就会清空文件,然后写入。

    a:以追加模式打开,没有文件也会新建,但不会清空文件,在文件最末尾处添加。

    在三种打开模式之上,新添加了一些组合,让我们更快更好的操作文件

    +:任何一种模式后加上+就变成了全新的更新模式,r+,w+,a+。任何一种模式加+就变成可读可写了。x:如果当前文件已经被其他文件打开,就打不开了,如果自己以独占方式打开,其他文件就打不开这个文件了。

    如果成功打开,就会返回一个file结构体的指针。对file的所有操作,都不会在文件上,而是在内存缓冲区。


    fopen只能将一个文件加入到缓冲区中,不能拿来处理文件。

    getc和putc


    字符串的结束符为0x00,文件的结束符为EOF。

    VS编译的时候文件应该存放在编译目录下才能以只读方式打开,否则打开出错返回空指针,然后用getc(fp)的时候就会出严重错误!

若以W方式打开,文件就会被清空。


    这个程序,执行的时候操作的时候是操作的缓冲区(fp),当程序关闭的时候,他会自动关闭缓冲区,他就会将缓冲区的内容更新到磁盘文件中,要正常关闭的话,应该使用fclose(fp);//。

    使用r+打开后,有一个叫游标的东西,游标默认在开始位置,写入数据的话就会覆盖文件本身的数据,如果对原来的数据进行一次读取(getc),游标就会往后面移动,但不可能每次打开文件都把之前的数据读取一遍,有其他方式解决:

1:以a+的模式打开,写入游标就会默认在文件最后面的位置,读取游标默认在文件开始的地方,但如果读取的话还是从最开始读取,完美解决了这个问题。这是比较常用的打开文件的方式(a+)。


当使用读取写入操作的时候,游标都会移动。

  ftell:

  fseek:设置游标位置。

    SEEK_SET:文件最开始位置

    SEEK_CUR:当前游标位置

    SEEK_END:文件末尾位置

ftell和fseek,游标所在的位置是通过long的方式存储在文件当中,可以存2亿多个游标,可能不够用,当文件够大的时候,ftell和fseek就只能处理2亿多个游标以内的游标

fgetspos和fsetpos:不再使用long来保存游标,使用一个全新的结构来保存游标,多用于处理大数据!


windows下,每个换行占用两个游标(fseek是以二进制来统计,getc是以字符来统计),\r\n,但读取的时候不会读取\r,


这段程序里,count和last的值就可能不一样。fseek(fp,last,SEEK_CUR);//里面最后一个参数是相对这个位置移动last个游标!









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值