C语言文件的输入输出知识点

文件类型指针

定义文件指针变量的一般形式为:

   FILE *文件结构指针变量名

例如:FILE *fp;

注意:只有通过文件指针,才能调用相应的文件。

文件的打开(fopen函数)

常用以下方式打开文件:

   FILE *fp;

   if ((fp=fopen("file1", "r")) ==NULL )

   {printf("cannot open this file\n");

    exit(0);

   }

文件的关闭(fclose函数)

例如:

fclose(fp);

fclose函数也带回一个返回值,当顺利关闭文件时,返回0,否则返回EOF(-1)

文件的读写

1fputc函数和fgetc函数(putc函数和getc函数)

(1)fputc函数

把字符写入到磁盘文件,一般的调用方式为:

fputc(ch,fp)

(2)fgetc()函数

从指定文件读入一个字符。fgetc函数的调用形式为:

ch=fgetc(fp);

从文本文件中顺序读入文件内容,并在屏幕上显示出来,可以用:

 ch = fgetc(fp);

 while(ch != EOF)

 {putchar(ch);

  ch = fgetc(fp);}

从二进制文件中顺序读入文件内容,可以用:

 while(!feof(fp))
   {ch = fgetc(fp);
    ....
    } 

fread函数和fwrite函数

fread函数和fwrite函数用来读写一个数据块。它们的一般调用方式为:

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

其中:

buffer:是一个指针。对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。

size:要读写的字节数。

count:要进行读写多少个size字节的数据项。

例:如果有如下的结构体类型:

  struct student_type{char name[10];

   int num;

   int age;

   char addr[30];

  }stu[40];

 

    for(i=0; i<40; i++) /* 每次写一个学生 */

  fwrite(&stu[i], sizeof(struct student_type), 1, fp);

  //或者只写一次

  fwrite(stu, sizeof(struct student_type), 40, fp);

fprintf函数和fscanf函数

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

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

例如:

fprintf(fp,"%d,%6.2f",i,t);

它的作用是将整型变量i和实型变量t的值按%d%6.2f的格式输出到fp所指向的文件中。如果i=3,t=4.5,则输出到磁盘文件上的是以下字符串:

34.50

同样,用fscanf函数可以从磁盘文件上读入ASCII字符:

fscanf(fp,"%d,%f",&i,&t);

磁盘文件上如果有以下字符:34.5  则将磁盘文件的数据3送给变量i4.5送给变量t

最好不用fprintffscanf函数,而用freadfwrite函数。

其他读写函数

1putwgetw函数

putwgetw函数用来对磁盘文件读写一个字(整数)。例如:

putw(10,fp);    /* 整数10写入文件fp */

i=getw(fp);     /* 从文件fp读一个整数给变量i */

2fgetsfputs函数

fgets函数的作用是从指定文件读入一个字符串。例如:

fgets(str, n,fp)     /* 从文件fp读n-1个字节到str,str最后一个字节加'\0'*/

fputs函数的作用是向指定的文件输出一个字符串。例如:

fputs(str,fp)        /* 把字符串str写入fp */

文件的定位

1rewind函数

一般的使用形式为:

rewind(fp);
作用:使文件 fp 的位置指针指向文件开始。

2fseek函数和随机读写

fssek (文件类型指针,位移量,起始点);

功能:把文件的位置指针从起始点开始,移动指定位移量的字节数。成功返回0,失败返回非0

3ftell函数

例如:

i=ftell(fp);

if(i==-1L) printf("error\n");

出错的检测

标准提供一些函数用来检查输入输出函数调用中的错误。

1ferror函数

在文件操作时,如果出错,除了操作函数的返回值有所反应外(如fopen()函数返回NULL),还可以用ferror函数获得是否出错。它的一般调用形式为:

ferror(fp)

功能:若上一次文件操作未出错,返回0;否则返回非0

2clearerr函数

clearerr函数的作用是使文件错误标志和文件结束标志置为0。 文件操作出现错误后,ferror(fp)函数值为一个非0值,该错误信息将一直保留在系统中,在调用clearerr(fp)函数后,ferror(fp)函数值变成0

 

文件输入输出小结

常用的缓冲文件系统函数

分类 

函数名 

功能 

打开文件 

fopen()

打开文件。

关闭文件 

fclose() 

关闭文件。

文件定位 

fseek()

rewind()

ftell()

改变文件位置指针位置

使文件位置指针重新置于文件开头

返回文件位置指针的当前值

文件读写 

fgetc(),getc()

fputc(),putc()

fgets()

fputs()

getw()

putw()

fread()

fwrite()

fscanf()

fprintf()

从指定文件取得一个字符。

把字符输出到指定文件。

从指定文件读取字符串。

把字符串输出到指定文件。

从指定文件读取一个字(int型)。

把一个字(int型)输出到指定文件。

从指定文件中读取数据项。

把数据项写到指定文件。

从指定文件按格式输入数据。

按指定格式将数据写到指定文件中。

文件状态 

feof()

ferror()

clearerr()

若到文件末尾,函数值为(非0)。

若对文件操作出错,函数值为(非0)。

使ferrorfeof函数值置零。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值