目录

  • 1 第一章 C语言简介
    • 1.1 C语言前世今生
    • 1.2 主流开发环境介绍
    • 1.3 第一个小程序解析
    • 1.4 常见编译错误
    • 1.5 章节知识点小结
  • 2 算法基础
    • 2.1 算法-程序的灵魂
    • 2.2 算法的描述-流程图
  • 3 数据类型与运算符
    • 3.1 数据描述
    • 3.2 运算符和表达式1
    • 3.3 运算符和表达式2
    • 3.4 章节知识点小结
  • 4 顺序结构程序设计
    • 4.1 输入和输出
    • 4.2 顺序结构程序设计
    • 4.3 章节知识点小结
  • 5 选择结构程序设计
    • 5.1 关系运算符和关系表达式
    • 5.2 逻辑运算符和逻辑表达式
    • 5.3 if语句
    • 5.4 条件运算符
    • 5.5 switch语句
    • 5.6 章节知识点小结
  • 6 循环结构程序设计
    • 6.1 while循环结构
    • 6.2 do_while循环结构
    • 6.3 for循环结构
    • 6.4 循环的嵌套
    • 6.5 break语句和continue语句
    • 6.6 章节知识点小结
  • 7 数组
    • 7.1 一维数组
    • 7.2 二维数组
    • 7.3 字符数组
    • 7.4 章节知识点小结
  • 8 函数
    • 8.1 子程序设计
    • 8.2 函数定义
    • 8.3 函数的调用
    • 8.4 局部变量和全局变量
    • 8.5 参数传递
    • 8.6 函数递归调用
    • 8.7 章节知识点小结
  • 9 指针
    • 9.1 指针的基本概念
    • 9.2 指针变量的定义及引用
    • 9.3 通过指针引用数组元素
    • 9.4 指向多维数组的指针和指针变量
    • 9.5 用指向数组的指针作函数参数
    • 9.6 指针与字符串
    • 9.7 函数指针和指针函数
    • 9.8 章节知识点小结
  • 10 用户自己建立数据类型
    • 10.1 定义和使用结构体变量
    • 10.2 使用结构体数组
    • 10.3 结构体指针
    • 10.4 章节知识点小结
  • 11 编译预处理
    • 11.1 宏定义预处理
    • 11.2 文件包含预处理
    • 11.3 条件编译预处理
    • 11.4 章节知识点小结
  • 12 文件
    • 12.1 文件的基本知识
    • 12.2 文件的基本操作
    • 12.3 章节知识点小结
文件的基本知识


1.  文件的基本知识

 (1)文件的概述

   文件有不同的类型,在程序设计中,主要用到两种文件:

  ①程序文件:包括源程序文件(.c)、目标文件(.obj)可执行文件(.exe)等 ,这些文件的内容是程序代码,属于程序文件。

  ②数据文件。文件的内容不是程序,是供程序运行时读写的数据,如在程序运行过程中输出到磁盘的数据,或在程序运行过程中输入的数据。

  将一些数据输出到磁盘上保存起来,作为磁盘文件,供以后需要时再读入计算机。

 (2)文件的定义

   文件:指存储在外部介质上数据的集合

u  数据以文件的形式存放在外部介质上 ,如磁盘,常用的硬盘、优盘。

u  读取外部介质上的数据,先按文件名找到指定的文件,再从该文件中读取数据 。

u  将数据存储到外部介质上,必须先建立一个文件(以文件名作为标志),再向它写入数据 。

(3)   文件名

   文件要有一个唯一的文件标识,以便用户识别和引用。

   文件标识包括三部分:

  • 文件路径:表示文件在外部存储设备中的位置。

  • 文件名主干:文件的名字,与其它文件区分开。

  • 文件后缀:表示文件的性质、类型。

如: D: \temp\file1.dat

        表示file1.dat文件存放在D盘中的temp目录下面;

        文件名file1,文件后缀.dat指数据文件,后缀为.doc指word文件,.txt指文本文件,后缀不同文件类型不同。



   (4)文件的分类

    根据数据的组织形式,数据文件可分为ASCII文件和二进制文件。

二进制文件:数据在内存中以二进制形式存储,若不加转换输出到外存,即二进制文件。

ASCII文件:又称文本文件,以ASCII代码形式存储,在存储前需要进行转换,每个字节放一个字符ASCII代码。

数据在磁盘怎样存储?

  • 字符一律以ASCII形式存储

  • 数值型数据既可用ASCII形式存储,也可用二进制形式存储

如整数10000,如用ASCII码形式输出到磁盘,则在磁盘中占5个字节(每一个字符占一个字节),而用二进制形式输出,则在磁盘上只占4个字节 。

(5)文件缓冲区

系统自动地在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区。

  • 从内存向磁盘输出数据,先将数据送到内存中的缓冲区,装满缓冲区后再送到磁盘

  • 从磁盘向内存输入数据,则将一批数据输入到内存缓冲区,再逐个地将数据送到程序数据区(给程序变量)

    从内存输出数据到磁盘,对文件而言即写操作;将数据输入到内存,即文件的读操作。

(6)   文件类型指针

每个被使用的文件在内存中有相应的文件信息区, 存放文件的有关信息(如文件名、文件位置、文件的状态等),通过文件信息区中的信息就能够访问到该文件。

文件信息保存在一个结构体变量中。结构体类型由系统声明,取名为FILE。对于结构体中的成员及含有不必深究,知道其中存放文件的有关信息即可。

一般定义指向FILE类型数据的指针变量

如: FILE *fp;

fp是一个指向FILE类型数据的指针变量,可指向某个文件的文件信息区,通过fp可找到与它关联的文件。

为方便,通常将这种指向文件信息区的指针变量简称为指向文件的指针变量;但它并不指向外部介质上的数据文件,而是指向内存中文件信息区的开头。