⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 32.htm

📁 c语言基本的应用便于初学者学习使用 简单易懂
💻 HTM
📖 第 1 页 / 共 3 页
字号:
        文件位置指示器也增大, 读多少个字节,
        文件位 <br>
        置指示器相应也跳过多少个字节。读写完毕函数返回所读和所写的字段个数。
        <br>
        &nbsp;&nbsp;&nbsp; ftell()函数返回文件位置指示器的当前值,&nbsp;
        这个值是指示器从文件头开始 <br>
        算起的字节数, 返回的数为长整型数,
        当返回-1时, 表明出现错误。 <br>
        &nbsp;&nbsp;&nbsp;
        下面程序把一个浮点数组以二进制方式写入文件test_b.dat中。
        <br>
        &nbsp;&nbsp;&nbsp; 例14: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; #include &lt;stdio.h&gt; <br>
        &nbsp;&nbsp;&nbsp;&nbsp; main() <br>
        &nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        float f[6]={3.2, -4.34, 25.04, 0.1, 50.56, 80.5}; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*定义浮点数组并初始化*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        int i; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        FILE *fp; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fp=fopen(&quot;test_b.dat&quot;, &quot;wb&quot;); /*创建一个二进制文件只写*/
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fwrite(f, sizeof(float), 6, fp);/*将6个浮点数写入文件中*/
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fclose(fp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*关闭文件*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp; 下面例子从test_b.dat文件中读100个整型数,
        并把它们放到dat数组中。 <br>
        &nbsp;&nbsp;&nbsp; 例15: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; #include &lt;stdio.h&gt; <br>
        &nbsp;&nbsp;&nbsp;&nbsp; main() <br>
        &nbsp;&nbsp;&nbsp;&nbsp; { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        FILE *fp; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        int dat[100]; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fp=fopen(&quot;test_b.dat&quot;, &quot;rb&quot;);/*打开一个二进制文件只读*/
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        if(fread(dat, sizeof(int), 100, fp)!=100) <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*判断是否读了100个数*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        { <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        if(feof(fp)) <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        printf(&quot;End of file&quot;); /*不到100个数文件结束*/
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        else <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        printf(&quot;Read error&quot;);&nbsp; /*读数错误*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fclose(fp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*关闭文件*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp; 注意: <br>
        &nbsp;&nbsp;&nbsp;
        当用标准文件函数对文件进行读写操作时,
        首先将所读写的内容放进缓冲区, <br>
        即写函数只对输出缓冲区进行操作,
        读函数只对输入缓冲区进行操作。例如向一
        <br>
        个文件写入内容,
        所写的内容将首先放在输出缓冲区中,
        直到输出缓冲区存满或 <br>
        使用fclose()函数关闭文件时,
        缓冲区的内容才会写入文件中。若无fclose() <br>
        函数,
        则不会向文件中存入所写的内容或写入的文件内容不全。有一个对缓冲区
        <br>
        进行刷新的函数, 即fflush(), 其调用格式为: <br>
        &nbsp;&nbsp;&nbsp; int fflush(FILE *stream); <br>
        &nbsp;&nbsp;&nbsp;
        该函数将输出缓冲区的内容实际写入文件中,
        而将输入缓冲区的内容清除掉。 </p>
        <p>&nbsp;&nbsp;&nbsp; 4. feof()和rewind()函数 <br>
        &nbsp;&nbsp;&nbsp; 这两个函数的调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int feof(FILE *stream); <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int rewind(FILE *stream); <br>
        &nbsp;&nbsp;&nbsp; feof()函数检测文件位置指示器是否到达了文件结尾,&nbsp;
        若是则返回一个非0 <br>
        值, 否则返回0。这个函数对二进制文件操作特别有用,
        因为二进制文件中,&nbsp; 文 <br>
        件结尾标志EOF也是一个合法的二进制数,&nbsp;
        只简单的检查读入字符的值来判断文 <br>
        件是否结束是不行的。如果那样的话,
        可能会造成文件未结尾而被认为结尾, 所 <br>
        以就必须有feof()函数。 <br>
        &nbsp;&nbsp;&nbsp;
        下面的这条语句是常用的判断文件是否结束的方法。
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp; while(!feof(fp)) <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fgetc(fp); <br>
        &nbsp;&nbsp;&nbsp; while为循环语句,
        将在下面介绍。 <br>
        &nbsp;&nbsp;&nbsp; rewind()函数用于把文件位置指示器移到文件的起点处,
        成功时返回0,&nbsp; 否 <br>
        则, 返回非0值。 <br>
        &nbsp; </p>
        <p>&nbsp;&nbsp;&nbsp; 1.2.2&nbsp; 非标准文件函数 <br>
        &nbsp;&nbsp;&nbsp; 这类函数最早用于UNIX操作系统,
        ANSI标准未定义,&nbsp;&nbsp; 但有时也经常用到,
        <br>
        DOS 3.0以上版本支持这些函数。它们的头文件为io.h。
        <br>
        &nbsp;&nbsp;&nbsp; 一、文件的打开和关闭 <br>
        &nbsp;&nbsp;&nbsp; 1. open()函数 <br>
        &nbsp;&nbsp;&nbsp; open()函数的作用是打开文件,
        其调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int open(char *filename, int
        access); <br>
        &nbsp;&nbsp;&nbsp; 该函数表示按access的要求打开名为filename的文件,
        返回值为文件描述字, <br>
        其中access有两部分内容: 基本模式和修饰符,
        两者用&quot; &quot;(&quot;或&quot;)方式连接。
        修 <br>
        饰符可以有多个, 但基本模式只能有一个。access的规定如表3-2。
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        表3-2&nbsp; access的规定 <br>
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        <br>
        基本模式&nbsp;&nbsp;&nbsp; 含义&nbsp;&nbsp;&nbsp;
        修饰符&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        含&nbsp; 义 <br>
        ────────────────────────────
        <br>
        O_RDONLY&nbsp;&nbsp;&nbsp; 只读&nbsp;&nbsp; O_APPEND&nbsp;&nbsp;
        文件指针指向末尾 <br>
        O_WRONLY&nbsp;&nbsp;&nbsp; 只写&nbsp;&nbsp; O_CREAT&nbsp;&nbsp;&nbsp;
        文件不存在时创建文件, <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        属性按基本模式属性 <br>
        O_RDWR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 读写&nbsp;&nbsp;
        O_TRUNC&nbsp;&nbsp;&nbsp; 若文件存在, 将其长度 <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        缩为0, 属性不变 <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        O_BINARY&nbsp;&nbsp; 打开一个二进制文件 <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        O_TEXT&nbsp;&nbsp;&nbsp;&nbsp; 打开一个文字文件 <br>
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        <br>
        &nbsp;&nbsp;&nbsp; open()函数打开成功,
        返回值就是文件描述字的值(非负值),
        否则返回-1。 </p>
        <p>&nbsp;&nbsp;&nbsp; 2. close()函数 <br>
        &nbsp;&nbsp;&nbsp; close()函数的作用是关闭由open()函数打开的文件,
        其调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int close(int handle); <br>
        &nbsp;&nbsp;&nbsp; 该函数关闭文件描述字handle相连的文件。
        </p>
        <p>&nbsp;&nbsp;&nbsp; 二、读写函数 <br>
        &nbsp;&nbsp;&nbsp; 1. read()函数 <br>
        &nbsp;&nbsp;&nbsp; read()函数的调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int read(int handle, void *buf,
        int count); <br>
        &nbsp;&nbsp;&nbsp; read()函数从handle(文件描述字)相连的文件中,
        读取count个字节放到buf <br>
        所指的缓冲区中, 返回值为实际所读字节数,
        返回-1表示出错。返回0 表示文件 <br>
        结束。 </p>
        <p>&nbsp;&nbsp;&nbsp; 2. write()函数 <br>
        &nbsp;&nbsp;&nbsp; write()函数的调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int write(int handle, void *buf,
        int count); <br>
        &nbsp;&nbsp;&nbsp; write()函数把count个字节从buf指向的缓冲区写入与handle相连的文件中,
        <br>
        返回值为实际写入的字节数。 <br>
        &nbsp; <br>
        &nbsp;&nbsp;&nbsp; 三、随机定位函数 <br>
        &nbsp;&nbsp;&nbsp; 1. lseek()函数 <br>
        &nbsp;&nbsp;&nbsp; lseek()函数的调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int lseek(int handle, long
        offset, int fromwhere); <br>
        &nbsp;&nbsp;&nbsp; 该函数对与handle相连的文件位置指针进行定位,
        功能和用法与fseek() 函 <br>
        数相同。 </p>
        <p>&nbsp;&nbsp;&nbsp; 2. tell()函数 <br>
        &nbsp;&nbsp;&nbsp; tell()函数的调用格式为: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; long tell(int handle); <br>
        &nbsp;&nbsp;&nbsp; 该函数返回与handle相连的文件现生位置指针,
        功能和用法与ftell()相同。 <br>
        &nbsp; </p>
        </td>
    </tr>
</table>
</center></div><div align="center"><center>

<table border="0" cellspacing="1" width="640">
    <tr>
        <td class="p9" height="60">  <script>document.write("<p><a href=\"http://view.gznet.com/cgi-bin/rl_views.cgi?UID=10013421\" target=sxrl>"); 
document.write("<img src=\"http://refer.gznet.com/cgi-bin/rl_refer2.cgi?UID=10013421&refer="+escape(top.document.referrer)+"\" width=1 height=1 border=0 alt=\"  \">"); 
document.write("</a>"); 
</script></td>
    </tr>
</table>
</center></div>

<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -