C语言“文件部分”考试

217 阅读2分钟

「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」。

fread

fread(buffer,size,count,fp);

buffer是数据块的指针,对fread来说,它就是内存块的首地址,输入的数据存入此内存块中。

Feof
的作用是判断文件是否已指到了文件末尾,如果已指到文件的末尾,则返回值为非零,否则为零。

Ftell

的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。

fgets

fgets的作用是指定文件读入一个字符串。

 fputc(ch,fp)

  这里ch是待输出的某个字符,它可以是一个字符常量,也允许是一个字符变量,fp是文件指针。

使用文件方式为"写入";"

fputs(str,fp)

(str,fp)"的作用是将字符str的值输出到fp所指向的文件中去。

 fwrite(buffer,size,count,fp);:buffer是一个指针,用于指向输出数据存放在内存区域的起始地址,size是要输出的字节数,count是要输出大小为size个字节的数据块的个数,fp是文件指针。

   EOF作为文件结束的标志,但是文件必须是文本文件。EOF的值为-1。

    对于文本文件,fgetc函数读入最后一个字符时,返回值是最后一个字符。

fopen

在C语言中fopen函数就可把程序中要读、写的文件与磁盘上实际的数据文件联系起来,其调用形式为:fopen(文件名,文件使用方式);若该函数调用成功,函数返回一个FILE类型的指针,赋给文件指针变量,从而与文件联系起来,当打开文件时出现错误,fopen函数将返回NULL。

文件使用方式"r",表示"只读"方式打开一个字符文件。

文件使用方式"r+",表示"读写"方式打开一个字符文件。

 文件使用方式"rb",表示以"只读"方式打开一个二进制文件。

 文件使用方式"w",表示以"只写"方式打开一个字符文件。

文件使用方式"a+",表示以"编辑"方式打开一个字符文件。

来几道题

#include   <stdio.h>

main()

{ FILE  *fp;   int  i,k,n;

fp=fopen("data.dat","w+");

for(i=1;i<6;i++)

{fprintf(fp,"%d  ",i);

if(i%3==0)  fprintf(fp,"\n");

}

rewind(fp);

fscanf(fp,"%d%d",&k,&n);  printf("%d  %d\n",k,n);

fclose(fp);

}

问答案:?

#include  <stdio.h>

main()

{FILE  *fp;   int  i;

 char  ch[]="abcd",t;

 fp=fopen ("abc.dat","wb++");

 for (i=0;i<4;i++) fwrite(&ch[i],1,1,fp);

 fseek (fp,-2L,SEEK_END);

 fread (&t,1,1,fp);

 fclose (fp);

 printf ("%c\n",t);

}

问答案:?

#include <stdio.h>

main()

{  FILE *fp; int k,n,a[6]={1,2,3,4,5,6};

   fp=fopen("d2.dat","w");

   fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);

   fclose(fp);

   fp=fopen("d2.dat","r");

   fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

   close(fp);

}

问答案:?

 

#include <stdio.h>

main()

{  FILE *fp;  int i,a[6]={1,2,3,4,5,6};

   fp=fopen("d3.dat","w+b");

   fwrite(a,sizeof(int),6,fp);

   fseek(fp,sizeof(int)*3,SEEK_SET);/该语句使读文件的位置指针从文件头向后移动3个int型数据/

   fread(a,sizeof(int),3,fp);fclose(fp);

   for(i=0;i<6;i++)  printf("%d,",a[i]);

}

问答案:?