zoukankan      html  css  js  c++  java
  • 关于文件

      程序不能长期地存储数据,如果定义一个整型变量,把12赋给它,然后关闭计算机,变量中就不再有12了!所以,必须把数据保存到硬盘上,一旦数据在硬盘上了,它将一直在那里,直到你修改或删除了它。

      硬盘把数据存放在文件(File)中。文件可以存放程序或者数据,程序运行之前必须从硬盘装载到内存中,在数据进入硬盘之前,变量也存放着数据。

      有两种类型的文件:顺序访问(sequential-access)和随机访问(random-access)。他们的类型决定了你可以怎样访问他们。如果处理一个顺序访问文件,那么你得按照数据的顺序读或写文件。在随机访问的文件中,你可以跳跃式地读或写文件的任何位置。

      所有的硬盘文件都有名字,这些名字遵循与程序名字相同的命名规则。无论是创建、读或修改文件中的数据,在能够使用硬盘文件之前,你必须打开文件。计算机把一个叫做文件指针(File pointer)东西关联到文件上并确保合理地设置硬盘以存放指定的文件。

      如何打开顺序文件。先使用fopen()函数,他的描述与printf()的描述一起包含在STDIO.H中。文件指针是存放着正在处理的硬盘文件的硬盘地址。你必须使用一条特殊的语句来定义文件指针。与任何变量一样,可以把文件指针按你喜欢的方式命名。假设你想打开一个雇员文件。在fopen()前面,你必须定义一个文件指针变量。如果文件指针变量命名为fptr,则文件指针定义为:

              FILE*fptr;

      一旦定义了文件指针,就可以用fopen()把指针连接到某个文件。一旦指定了fopen(),你就可以在程序的其他部分使用此文件了。下面是打开名为C:\EMPS.DAT的文件的方法。

      #include<stdio.h>

      FILE *fptr;

      main()

      {  fptr=fopen("C:\\EMPS.DAT","w");

        fclose(fptr);

      }

      在程序的其他部分中,你将通过文件指针访问EMPS.DAT文件,而不是通过文件名访问。在 每次访问文件时,使用文件指针变量比输入文件名和文件完全路径更简单,而且更不容易出错。

      在使用完文件后,要关闭所有打开的文件,否则将丢失数据。fclose()与fopen()刚好相反,在他的括号里,fclose()要求写上想要关闭的文件的指针。

      访问顺序文件。对顺序文件能做三件事——创建、读、写。为了写文件,你可以使用fprintf()。fprintf()很容易使用,因为它只不过是在括号开始处带有文件指针的printf()。下面的程序创建一个文件并用fprintf()写入一些数据:

    #include<stdio.h>

    #include<stdlib.h>

    FILE *fptr;

    int main()

    {

        int age=45;

        float salary=9670.50;

        fptr=fopen("C\\MYDATA.DAT","w");

        if(fptr==0)

        {printf("An error occurred while opening the file.\n");

        exit(1);

        }

        fprintf(fptr,"Here is some stuff:\n");

        fprintf(fptr,"I an %d years old.\n",age);

        fprintf(fptr,"I make $%.2f dollars every three month!\n“,salary);

        fclose(fptr);

        return 0;

    }

      用fgets()读取文件的内容。fgets()只不过是可以定向到硬盘文件的gets().gets()从文件中读取行到字符数组中。把fputs()和fgets()开头处的f看成file.puts()和gets()分别到达屏幕和键盘,fputs()和fgets()从文件中写和读数据。

      

  • 相关阅读:
    WPF 分页控件Pager
    vue Map 渲染DOM
    IDEA 开发工具 Mybatis 快速开发插件 ==》MyBatisX
    令自己的本地ip可以被外网访问
    mybatis按datetime条件查询,参数为时间戳时
    springmvc传参---LocalDateTime、Date等时间类型转换
    java excel导出(表头合并,多行表头)
    JMeter学习工具简单介绍
    idea项目 run、debug变灰色的问题
    vue的ui库使用Element UI,纯html页面,不使用webpack那玩意
  • 原文地址:https://www.cnblogs.com/yuezhihua/p/2368820.html
Copyright © 2011-2022 走看看