zoukankan      html  css  js  c++  java
  • 谭浩强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指向的文件。

  • 相关阅读:
    《一个医生的故事》:协和妇产科主任文艺散文集,三星
    《睡眠正能量》:《正能量》作者关于睡眠的科学研究的科普与综述,三星
    [miniApp] WeChat user login code
    [Vue @Component] Pass Vue Render Functions as Props for Powerful Patterns
    [Vue @Component] Write Vue Functional Components Inline
    [Vue @Component] Control Template Contents with Vue's Render Function
    [Vue @Component] Pass Props to Vue Functional Templates
    [JavaEE] Bootstrapping a JavaEE Application
    [Vue @Component] Place Content in Components with Vue Slots
    [Vue @Component] Define Props on a Vue Class with vue-property-decorator
  • 原文地址:https://www.cnblogs.com/tsembrace/p/3135365.html
Copyright © 2011-2022 走看看