设为首页 加入收藏

TOP

计算机等级考试二级C语言程序设计专项训练题——文件操作(一)
2023-07-23 13:32:25 】 浏览:599
Tags:计算机 程序设 计专项 文件操

一.基础知识

C语言中,文件操作有四个步骤:

① 定义文件指针;

② 打开文件:文件指针指向磁盘文件缓冲区;

③ 文件处理:文件读写操作;

④ 关闭文件。

文件打开函数如下:

fp=fopen("文件名","文件打开方式")

其功能是:使文件指针fp与相应文件实体对应起来,程序对文件指针进行操作,即fp代表磁盘文件。

        函数fopen()若执行成功,则返回包含文件缓冲区等信息的FILE型地址,赋给文件指针fp;若不成功,则返回一个NULL(空值)。

文件关闭函数如下:

fclose(文件指针)

        其功能是:把缓冲区中的数据写入磁盘扇区,确保写文件的正常完成;释放文件缓冲区单元和FILE结构体,使文件指针与具体文件脱钩。

        若正常关闭文件,函数fclose()的返回值为0;若无法正常关闭文件,返回非0。

文件读写函数包括

字符读写函数: fgetc() / fputc()

字符串读写函数:fputs() / fgets()

格式化读写函数:fscanf() / fprintf()

二进制读写函数:fread ()/ fwrite()

其他相关函数:

检测文件结尾函数feof()

文件定位的函数fseek() 、rewind()

各函数的调用格式示例如下:

ch = fgetc( fp ) ;

从fp所指示的磁盘文件上读入一个字符到ch

fputc(ch, fp);

把一个字符 ch 写到 fp 所指示的磁盘文件上

fgets(s, n, fp);

        从文本文件中读取字符串。其中,s可以是字符数组名或字符指针;n指定读入的字符个数;fp代表文件指针。

        函数被调用时,最多读取n-1个字符,并将读入的字符串存入s所指向内存地址开始的n-1个连续的内存单元中。

        当函数读取的字符达到指定的个数,或接收到换行符,或接收到文件结束标志EOF时,将在读取的字符后面自动添加一个’\0’字符;若有换行符,则将换行符保留(换行符在’\0’字符之前);若有EOF,则不保留。

        fputs(s, fp);

向指定的文本文件写入一个字符串s,字符串s中的结束符’\0’不写入文件。

fscanf(文件指针,格式字符串,输入表);

fprintf(文件指针,格式字符串,输出表);

指定格式的输入输出函数。

fread(buffer, size, count, fp);

从二进制文件中读入一个数据块到变量

fwrite(buffer, size, count, fp);

向二进制文件中写入一个数据块     

其中,四个参数说明如下:

buffer:指针,表示存放数据的首地址;

size:数据块的字节数;

count:要读写的数据块块数;

fp:文件指针。

feof(fp) ;

判断fp指针是否已经到文件末尾,若到文件结束位置,函数返回值1;若文件未结束,函数返回值0。

rewind(fp);

定位文件指针,使文件指针指向读写文件的首地址,即打开文件时文件指针所指向的位置。

fseek(fp, offset, from);

        其中,offset为移动偏移量,long型;from表示起始位置,文件首部、当前位置和文件尾部分别对应0,1,2,或常量SEEK_SET、SEEK_CUR、SEEK_END。

        例如:fseek(fp, 20L, 0):将文件位置指针移动到离文件首20字节处;fseek(fp, -20L, SEEK_END):将文件位置指针移动到离文件尾部前20字节处。 

二.程序填空题练习题

1.给定程序中,函数fun的功能是:将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>

#include  <stdlib.h>

int fun(char *source, char *target)

    FILE  *fs,*ft;     

    char  ch;

    /**********found**********/

    if((fs=fopen(source, ___1___))==NULL)

      return 0;

    if((ft=fopen(target, "w"))==NULL)

      return 0;

    printf("\nThe data in file :\n");

    ch=fgetc(fs);

    /**********found**********/

    while(!feof(___2___))

    { 

        putchar( ch );

    /**********found**********/

        fputc(ch,___3___);

        ch=fgetc(fs);

    }

    fclose(fs); 

    fclose(ft);

    printf("\n\n");

    return  1;

}

int main()

    char  sfname[20] ="myfile1",tfname[20]="myfile2";

    FILE  *myf;     

&nb

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机等级考试二级C语言程序设计.. 下一篇计算机等级考试二级C语言程序设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目