谭浩强C文件

一、概述

1、通常把显示器定义为标准输出文件,把键盘定义为标准输入文件。

2、从文件编码方式,可分为ASCII码文件和二进制码文件。ASCII码文件也称为文本文件,每个字符对应一个字节,存放字符对应的ASCII码。二进制文件则按二进制编码方式来存放。比如对于51,ASCII码文件存放的是5和1对应的ASCII值:53和49,即0011 0101和0011 0001。而二进制文件中存储的即是51对应的二进制表示:即0011 0011。

二、操作文件的准备工作

1、对某文件操作前,在C语言里须先用一个指针变量指向文件类型,格式例如:FILE *fp;fp为指针变量名,关键字FILE表示为文件指针变量。可通过文件指针变量对文件进行各种操作。

2、在定义好文件指针后,须先通过“打开文件”来使文件指针变量指向某文件,并且使该文件处于“打开”状态(实质为建立该文件的各种信息),以进行后续操作。示例对名为与源程序同目录下的m3.txt这一ASCII码文件进行打开:

FILE *fp;

fp=fopen("m3.txt“,"打开方式");

3、对文件操作结束之后,要通过“关闭文件”来断开文件指针变量与该文件的指向关系。如:fclose(fp)。正常关闭文件后该函数返回值为0.

4、文件的“打开方式”:

r对应read only;w对应write only;a对应append;t对应txt,即ASCII文件;b对应binary,即二进制文件;+表示扩展,即可读可写。综上,有如下"打开方式":rt/wt/at/rb/wb/ab/rt+/wt+/at+/rb+/wb+/ab+/。当方式为write时(wt\wb\wt+\wb+)时,如果被操作文件不存在,则新建一文件,并写入该文件。当方式为append(at\ab\at+\ab+)时,被操作文件必须存在,否则会出错。

5、对文件操作时,一般可通过如下示例代码检测被操作文件是否存在:

FILE *fp;

if((fp=fopen("m3.txt","at+"))==NULL)    //若fopen函数返回空指针,即文件不存在

{ 

  printf("the file not exsit!\n");      //输出提示
  getch();                              //通过等待输入,使得操作人员可看到上句提示
  exit(1);                              //退出程序
}

三、文件的操作

1、字符读写函数fgetc\fputc

每次操作读\写一字节(一字符)。

char ch;

ch=fgetc(fp1);

putc(ch,fp2);

2、字符串读写函数fgets\fputs

char s[];

fgets(s,n,fp1); //从fp1指向的文件中读取(n-1)个字符赋给字符串s,并在s最后加'\0'。

fputs(s,fp2);   //将字符串s写入fp2

fputs("abc",fp2);  //将字符串直接量写入fp2

3、数据块读写函数fread\fwrite

fread(buffer,size,count,fp)

从fp指向的文件中读取“count"块“size"大小的数据,存放到buffer指向的首地址。

fwrite(buffer,size,count,fp)

从buffer指向首地址的存储区中“count"块“size"大小的数据,写入fp指向的文件。

原文地址:https://www.cnblogs.com/tsembrace/p/3135365.html