在程序设计中使用枚举类型的主要意义在于限制数据的取值范围,使得应用程序尽可能避免出现一些毫无意义的结果。同时,使用枚举型数据还可以在一定程度上描述数据对象的物理含义,使得程序更加清晰、更容易理解,下面的程序演示了枚举数据类型的一些应用。某部门每天需要安排两名技术人员值班,该部门有5位技术人员:程利华、李小明、王琳、高小杰、潘俊民,请编写程序为他们安排1~5天的轮流值班表。......
2023-11-20
1.文件的概念和作用
文件是指具名存放在外部存储设备上的一组信息,它们以二进制代码形式存在,可能是一组数据、一个程序,一张照片、一段声音等。在计算机应用中,文件的概念具有更广泛的意义,它甚至包含所有的计算机外部设备,这样的文件称为“设备文件”。对于结构化程序设计语言而言,文件是其处理的最重要的外部数据,通过在程序设计中使用文件可以达到以下两个目的:
①将数据永久地保存在计算机外部存储介质上,使之成为可以共享的信息,即通过文件系统与其他信息处理系统联系。
②可以进行大量的原始数据的输入和保存,以适应计算机系统在各方面的应用。
2.文件的分类
文件按照不同的分类原则可以有不同的分类方法,主要有以下几种文件的分类方法:
①按文件的结构形式分类可以分为文本文件和二进制文件。
文本文件是全部由字符组成的文件,即文件的每个元素都是字符或换行符。即使是整数或者实数在文本文件中也是按其对应的字符存放的。由于文件每个元素都是用ASCII码字符来表示的,所以文本文件又称为ASCII码文件。例如,1234567作为整型常量看待时仅需4个字节即可表示,但存放到文本文件中去时,由于一个ASCII码字符占用一个字节的存储空间,那么就需占用7个字节空间来存放。文本文件的特点是存储效率较低,但便于程序中对数据的逐字节(字符)处理。
二进制文件是把数据按其在内存中的存储形式原样存放到计算机外部存储设备,这类文件可以节省计算机外存空间。例如,在32位系统中,存放整数1234567时,按文本方式需要7个字节,按二进制方式仅需4个字节。二进制文件的特点是存储效率较高,但不便于程序中直观地进行数据处理。
②按文件的读写方式分类可以分为顺序存取文件和随机文件。
文件的顺序存取指的是,读/写文件数据只能从第一个数据位置开始,依次处理所有数据直至文件中数据处理完成。
文件的随机存取指的是可以直接对文件的某一元素进行访问(读或者写)。C程序中随机访问文件包括寻找读写位置和读写数据两个步骤,C编译系统中都提供了实现随机读取文件中任意数据元素所需要的函数。
③按文件存储的外部设备分类可以分为磁盘文件和设备文件。
磁盘文件的作用是,既可以将程序运行过程中产生的数据信息输出到磁盘上保存,也可以从磁盘中将数据读取到程序中(内存中)进行处理。(www.chuimin.cn)
在程序设计中,将所有计算机系统外部设备也作为文件对待,这样的文件称为设备文件。C程序设计中常用的标准设备文件有:KYBD:(键盘)、SCRN:(显示器)、PRN或LPT1:(打印机)等。还有3个特殊设备文件,它们由系统分配和控制,进入系统时自动打开,退出系统时自动关闭,不需要程序设计人员控制。这3个标准设备文件是:
·stdin:(标准输入文件)由系统指定为键盘;
·stdout:(标准输出文件)由系统指定为显示器;
·stderr:(标准错误输出文件)由系统指定为显示器;
C语言中,将磁盘文件和设备文件都作为相同的逻辑文件对待,对这些文件的操作(输入和输出等)都采用相同方法进行。这种逻辑上的统一为C程序设计提供了极大的便利,从而使得C标准函数库中的输入输出函数既可以用来处理通常的磁盘文件,又可以用来对计算机系统的外部设备进行控制。
④按系统对文件的处理方法分类可以分为缓冲文件系统和非缓冲文件系统。
缓冲文件系统是指系统自动地在内存中为每一个正在使用的文件开辟一个缓冲区。从内存向磁盘输出数据必须先送到内存中的缓冲区,待缓冲区装满后才将整个缓冲区的数据一起送到磁盘文件中保存。如果从磁盘文件向系统内存读入数据,则从磁盘文件中一次读入一批数据到系统缓冲区,然后再从数据缓冲区中将数据送到对应程序的变量数据存储区。
非缓冲文件系统指的是不由系统开辟文件缓冲区,而是由程序员为用到的每个文件设置数据缓冲区,并自行对文件缓冲区进行管理。
1983年ANSI C标准决定放弃采用非缓冲文件系统而只使用缓冲文件系统,无论是文本文件还是二进制文件都使用缓冲文件系统进行处理。
3.文件数据类型和文件类型指针变量
在缓冲文件系统中,对文件的处理都是通过在内存中开辟一个缓冲区来存取文件的相关信息,如文件的名字、状态、文件读写指针的当前位置等,这些关于文件处理的信息在整个文件处理的过程中必须妥善保存。C语言中,用一个系统已经构造好的文件类型(FILE)变量来保存这些信息。
C程序在处理文件时,对任何一个正在处理的文件都会自动定义一个FILE类型的变量,将对文件的各种描述信息和控制信息存放在该变量中,程序中对这个FILE类型变量的操作需要通过指向它的指针来进行,文件处理的程序中,需要定义一个FILE数据类型的指针变量(称为文件指针),当建立或者打开文件时系统就自动建立一个FILE类型变量并将文件的有关信息存放到该变量中,然后将变量的地址赋给文件类型(FILE类型)指针变量,使得文件指针与被打开文件建立起关联。文件指针和特定文件的关联建立起来后,此后的代码中既可通过文件指针对该文件中的数据进行各种各样的操作。在应用程序中如果需要同时处理若干个文件,则需要定义若干个文件类型指针。定义文件类型指针变量的方法与定义其他类型变量的方法类似,其一般形式如下:
FILE*fp;
有关C语言程序设计基础(第3版)的文章
在程序设计中使用枚举类型的主要意义在于限制数据的取值范围,使得应用程序尽可能避免出现一些毫无意义的结果。同时,使用枚举型数据还可以在一定程度上描述数据对象的物理含义,使得程序更加清晰、更容易理解,下面的程序演示了枚举数据类型的一些应用。某部门每天需要安排两名技术人员值班,该部门有5位技术人员:程利华、李小明、王琳、高小杰、潘俊民,请编写程序为他们安排1~5天的轮流值班表。......
2023-11-20
在C语言中,数据类型可分为4类,它们是基本数据类型、构造数据类型、指针类型、空类型,如图2.2所示。图2.2C语言的数据类型不同数据类型的存储空间大小和取值范围都不同,与使用的编译器版本也有一定的关系,见表2.2。表2.2C语言的标准数据类型1.整型数据整型数据分为两大类:有符号型和无符号型。在C程序中,用于存放整型数据的变量称为整型变量。C语言中,有十进制小数形式和指数形式两种表示实型常量的方法。......
2023-11-20
在C 语言中,对文件的基本操作包括文件的打开与关闭、文件的读和写等。表9.1文件操作方式例如:打开当前目录下的C.DAT 文件,这是一个二进制文件,只允许进行读操作,并使fp 指针指向该文件。应该养成在程序终止前关闭所有文件的习惯,如果不关闭文件将会丢失数据。......
2023-10-21
程序设计时,可以通过下面3种常用方法组织多源文件C程序:·单独编译每一个源程序文件,然后用连接程序对编译好的目标文件进行连接构成执行文件。使用文件包含组合多源文件C程序示例。①源程序文件isprime.c的内容如下:②源程序文件ReverseOrderNnumber.c的内容如下:③求指定区间中所有“绝对素数”的C程序如下:在上面程序中,用文件包含方式将含有“求倒序数”功能和“判定素数”功能的源程序文件嵌入到程序ex0904.c中,构成了一个解决问题的完整C程序。......
2023-11-20
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。C语言是以函数形式提供给用户的,这些函数可方便地调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。C语言对编写需要硬件进行操作的场合优于其他高级语言,有一些大型应用软件也是用C语言编写的。......
2023-06-26
这三种整型数据类型都可以指定为“有符号”或“无符号”,如果既不指定为signed,也不指定为unsigned,则默认为signed。归纳起来,整型数据分为以下6种,如表2.1所示。表2.1整型数据类型表2.1中“类型”列中的方括号部分是可以省略的,如signed short int与short等价。例如:int a,b,c,d;unsigned e;long f,g;在程序中,一个int型变量最大允许值为32767,要防止数据的溢出。......
2023-11-18
C++的基本数据类型有bool(布尔型)、char(字符型)、int(整型)、float(浮点型)、double。另外,C++中增加了一个布尔类型bool,其值为true(真)或false(假)。浮点数和整数不同的地方是浮点数有小数部分,如12.34。C++提供的5种基本数据类型,其数据的长度和范围会随处理器的类型和编译器类型的不同而异。C++的修饰符有short、long和signed、unsigned。表1.1大多数32位系统内置数据类型范围续表......
2023-11-07
相关推荐