现在的位置: 首页 > 综合 > 正文

进一步对C语言的文件理解

2014年08月31日 ⁄ 综合 ⁄ 共 1117字 ⁄ 字号 评论关闭

 

 

    以前对于文件操作总是有一种“敬畏”,总不想去看到它,这几天不知道什么原因,突然想看文件操作了,我对此也感到很奇怪!废话不多说了,就把我今晚所看的记录下来,以后看到,帮助自己理解!同时这些也都是我从书上的总结摘录。

     第一个要弄清的问题是:文件就是储存在外部介质(磁盘)上的数据的集合。可分两种文件 ASCII文件和二进制文件,这两种文件有什么区别,我就举例说明吧!

如果有一个整数:10000,如果按ASCII形式输出,则占5个字符,为什么呢?因为10000五位数,每一位数用一个字符。但如果是用二进制的形式表示的话,10000就只占两个字节,十六位:0010011100010000。这里还介绍一个流氏文件,输入输出的数据流的开始和结束只受程序控制二不受物理符号控制(如换行符等),即是流氏文件。

       第二个,我们要理解的是,两种对文件处理方法,缓冲文件系统与非缓冲文件系统,

缓冲文件系统的本领就是帮文件自动开辟内存空间,非缓冲文件系统可想而知。

缓冲文件系统还要特别注意的是,从内存向磁盘输出数据必须先送到内存中的缓冲区,装满后送到磁盘去,如果从磁盘向内存输入数据时,同样也要向充满缓冲区。这个与后来的fclose函数有很大的关系。例外,注意内存向磁盘是输出,磁盘向内存是输入。

     第三内存向磁盘是输出,磁盘向内存是输入。我们可以对照不同的函数尽行分析,在这中间来个小插曲,就是Fopen函数,它是用来返回对应文件指针的函数,(尼玛!又是指针,以前总以为指针十个多么神秘的东东,原来就是个地址),其实指针就是地址,Fopen函数返回了地址后,可以对文件进行操作了。

(在此并没有涉及到函数的参数,可以对照书本中函数参数)回到我们对照不同的函数尽行分析,fputc是将字符输出到指向的文件 ,fread将将磁盘文件的内容读出来,fputs将字符串输出到指向的文件,函数都是内存输出,即从内存往磁盘内写数据,就是写到文件中,对应的fgetc得到相应文件的一个字符,fwrite将数据写到文件中区去,fgets得到相应文件的字符串。还有两个要注意的是,fprintf fscanf函数,两函数与printf没有多大区别,不过

fprintf fscanf函数读写的不是终端是磁盘文件,如fprintffp,“%d%d”,ij)他的作用是将i,J输入到我们的“fp”文件中。

第四我们注意:

打开的文件是否合法,对于打开文件

FILE *fp

If((fp=fopen(“1.txt”,“r”))==NULL

{

   Exit(0);

}

判断文件是否结尾:

If(!feoffp))

{

  //还没结束

  / /继续操作

}

抱歉!评论已关闭.