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

📄 32.htm

📁 c语言基本的应用便于初学者学习使用 简单易懂
💻 HTM
📖 第 1 页 / 共 3 页
字号:
        &nbsp;&nbsp;&nbsp; int fputc(int ch, FILE *steam); <br>
        &nbsp;&nbsp;&nbsp;
        上述三个函数的返回值均为整型量。fprintf()
        函数的返回值为实际写入文 <br>
        件中的字罕个数(字节数)。如果写错误,
        则返回一个负数, fputs()函数返回0时 <br>
        表明将string指针所指的字符串写入文件中的操作成功,
        返回非0时,&nbsp; 表明写操 <br>
        作失败。fputc()函数返回一个向文件所写字符的值,
        此时写操作成功,&nbsp; 否则返 <br>
        回EOF(文件结束结束其值为-1, 在stdio.h中定义)表示写操作错误。
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp; fprintf( )
        函数中格式化的规定与printf( ) 函数相同,&nbsp;&nbsp;
        所不同的只是 <br>
        fprintf()函数是向文件中写入。而printf()是向屏幕输出。
        <br>
        &nbsp;&nbsp;&nbsp; 下面介绍一个例子,
        运行后产后一个test.dat的文件。 <br>
        &nbsp;&nbsp;&nbsp; 例11: <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;
        char *s=&quot;That's good news&quot;);&nbsp; /*定义字符串指针并初始化*/
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        int i=617;&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;
        FILE *fp;&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;
        fp=fopne(&quot;test.dat&quot;, &quot;w&quot;);&nbsp;&nbsp;&nbsp;
        /*建立一个文字文件只写*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fputs(&quot;Your score of TOEFLis&quot;, fp);/*向所建文件写入一串字符*/
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fputc(':', fp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*向所建文件写冒号:*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fprintf(fp, &quot;%d\n&quot;, i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*向所建文件写一整型数*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fprintf(fp, &quot;%s&quot;, s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; 用DOS的TYPE命令显示TEST.DAT的内容如下所示:
        <br>
        &nbsp;&nbsp;&nbsp; 屏幕显示 <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Your score of TOEFL is:
        617 <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; That's good news </p>
        <p>&nbsp;&nbsp;&nbsp; 2. 文件的顺序读操作函数 <br>
        &nbsp;&nbsp;&nbsp; fscanf()、fgets()和fgetc()函数 <br>
        &nbsp;&nbsp;&nbsp; 函数fscanf()、fgets()和fgetc()均为文件的顺序读操作函数,
        其调用格式 <br>
        如下: <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int fscanf(FILE *stream, char
        *format, &lt;address-list&gt;); <br>
        &nbsp;&nbsp;&nbsp;&nbsp; char fgets(char *string, int n,
        FILE *steam); <br>
        &nbsp;&nbsp;&nbsp;&nbsp; int fgetc(FILE *steam); <br>
        &nbsp;&nbsp;&nbsp; fscanf()函数的用法与scanf()函数相似,&nbsp;&nbsp;
        只是它是从文件中读到信息。 <br>
        fscanf()函数的返回值为EOF(即-1), 表明读错误,
        否则读数据成功。fgets()函 <br>
        数从文件中读取至多n-1个字符(n用来指定字符数),
        并把它们放入string指向的 <br>
        字符串中,
        在读入之后自动向字符串未尾加一个空字符,
        读成功返回string指针, <br>
        失败返回一个空指针。fgetc()函数返回文件当前位置的一个字符,&nbsp;
        读错误时返 <br>
        回EOF。 <br>
        &nbsp;&nbsp;&nbsp; 下面程序读取例11产生的test.dat文件,
        并将读出的结果显示在屏幕上。 <br>
        &nbsp;&nbsp;&nbsp; 例12 <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;
        char *s, m[20]; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        int i; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        FILE&nbsp; *fp; <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fp=fopen(&quot;test.dat&quot;, &quot;r&quot;);&nbsp;&nbsp;&nbsp;
        /*打开文字文件只读*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fgets(s, 24, fp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*从文件中读取23个字符*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        printf(&quot;%s&quot;, s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*输出所读的字符串*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fscanf(fp, &quot;%d&quot;, &amp;i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*读取整型数*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        printf(&quot;%d&quot;, i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*输出所读整型数*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        putchar(fgetc(fp));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*读取一个字符同时输出*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fgets(m, 17, fp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        /*读取16个字符*/ <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        puts(m);&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;
        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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        getch();&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; } <br>
        &nbsp;&nbsp;&nbsp; 运行后屏幕显示: <br>
        &nbsp;&nbsp;&nbsp; Your score of TOEFL is: 617 <br>
        &nbsp;&nbsp;&nbsp; That's good news <br>
        &nbsp;&nbsp;&nbsp; 如果将上例中fscanf(fp,
        &quot;%d&quot;, &amp;i)改为fscanf(fp, &quot;%s&quot;,
        m),&nbsp; 再将其后 <br>
        的输出语句改为printf(&quot;%s&quot;, m),
        则可得出同样的结果。由此可见Turbo C2. 0 <br>
        中只要是读文字文件,
        则不论是字符还是数字都将按其ASCII值处理。
        另外还要 <br>
        说明的一点就是fscanf()函数读到空白符时,
        便自动结束, 在使用时要特别注意。 </p>
        <p>&nbsp;&nbsp;&nbsp; 3. 文件的随机读写 <br>
        &nbsp;&nbsp;&nbsp;
        有时用户想直接读取文件中间某处的信息,
        若用文件的顺序读写必须从文件 <br>
        头开始直到要求的文件位置再读,
        这显然不方便。Turbo C2.0提供了一组文件的 <br>
        随机读写函数,
        即可以将文件位置指针定位在所要求读写的地方直接读写。
        <br>
        &nbsp;&nbsp;&nbsp; 文件的随机读写函数如下: <br>
        &nbsp;&nbsp;&nbsp; int fseek (FILE *stream, long offset,
        int fromwhere); <br>
        &nbsp;&nbsp;&nbsp; int fread(void *buf, int size, int
        count, FILE *stream); <br>
        &nbsp;&nbsp;&nbsp; int fwrite(void *buf, int size, int
        count, FILE *stream); <br>
        &nbsp;&nbsp;&nbsp; long ftell(FILE *stream); <br>
        &nbsp;&nbsp;&nbsp; fseek()函数的作用是将文件的位置指针设置到从fromwhere开始的第offset
        <br>
        字节的位置上, 其中fromwhere是下列几个宏定义之一:
        <br>
        &nbsp;&nbsp;&nbsp; 文件位置指针起始计算位置fromwhere
        <br>
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━
        <br>
        &nbsp;&nbsp;&nbsp; 符号常数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        数值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        含义 <br>
        ───────────────────────────
        <br>
        &nbsp;&nbsp;&nbsp; SEEK_SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        从文件开头 <br>
        &nbsp;&nbsp;&nbsp; SEEK_CUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        从文件指针的现行位置 <br>
        &nbsp;&nbsp;&nbsp; SEEK_END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        从文件末尾 <br>
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━
        <br>
        &nbsp;&nbsp;&nbsp; offset是指文件位置指针从指定开始位置(fromwhere指出的位置)跳过的字
        <br>
        节数。它是一个长整型量, 以支持大于64K字节的文件。fseek()函数一般用于对
        <br>
        二进制文件进行操作。 <br>
        &nbsp;&nbsp;&nbsp; 当fseek()函数返回0时表明操作成功,
        返回非0表示失败。 <br>
        &nbsp;&nbsp;&nbsp; 下面程序从二进制文件test_b.dat中读取第8个字节。
        <br>
        &nbsp;&nbsp;&nbsp; 例13: <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;
        if((fp=fopen(&quot;test_b.dat&quot;,
        &quot;rb&quot;))==NULL) <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;
        printf(&quot;Can't open file&quot;); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        exit(1); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        } <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fseek(fp, 8. 1, SEEK_SET); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fgetc(fp); <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        fclose(fp); <br>
        &nbsp;&nbsp;&nbsp;&nbsp; } <br>
        &nbsp;&nbsp;&nbsp; fread()函数是从文件中读count个字段,
        每个字段长度为size个字节, 并把 <br>
        它们存放到buf指针所指的缓冲器中。 <br>
        &nbsp;&nbsp;&nbsp; fwrite()函数是把buf指针所指的缓冲器中,
        长度为size个字节的count个字 <br>
        段写到stream指向的文件中去。 <br>
        &nbsp;&nbsp;&nbsp; 随着读和写字节数的增大,

⌨️ 快捷键说明

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