1
C语言程序设计
1.10.5 9.5 程序举例

9.5 程序举例

本程序用磁盘文件存放一个简单的电话簿。电话簿的用户姓名和电话号码从键盘输入,可以按姓名查找电话号码。

程序中包括三个函数。menu()函数显示菜单,接收用户的使用选择。add_num函数接收从键盘输入的姓名和电话号码,存入文件phone中,构成电话簿。lookup()函数,按姓名可查找某电话号码。程序中使用了fscanf()函数从键盘标准文件中读入姓名和电话号码。使用fprintf()函数把读入的姓名和电话号码写入由fp指向的“phone”文件中。

有一点要说明:虽然fprintf()和fscanf()是向磁盘文件读写各种数据最方便的方法,但效率并不一定最高。因为它们向文件写入数据时,使用的是格式化的ASCII码数据而不是二进制数据,调用这两个函数需要附加转换操作。如果要求速度快或文件很长时应使用fread() 和fw rite()函数。

例9-12 使用磁盘文件存放一个简单的电话簿的程序。

  // 9-12.cpp

  #include 〈stdio.h〉

  void menu();

img696

img697

  运行结果:

  (A)dd,(L)ookup,or(Q)uit:a

  enter name and number:

  Libing 3759

  (A)dd,(L)ookup,or(Q)uit:a

  enter name and number:

  Huanghong 2349

  (A)dd,(L)ookup,or(Q)uit:a

  enter name and number:

  Chengxiao 2154

  (A)dd,(L)ookup,or(Q)uit:a

  enter name and number:

  Zhaorui 3176

  (A)dd,(L)ookup,or(Q)uit:l

  name? Huanghong

  Huanghong 2349

  (A)dd,(L)ookup,or(Q)uit:l

  name? Zhaorui

  Zhaorui 3176

  (A)dd,(L)ookup,or(Q)uit:q