首页>计算机>软件水平考试>复习指导>正文
计算机软件水平考试:程序员之程序设计知识点(七)

www.zige365.com 2010-6-23 14:01:26 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

  对于二进制文件,一般不能以读人字节的值是否为-1来判定二进制文件是否结束,而应该用函数feof()。
  3.字符(或字节)逐一生成形成新文件的程序结构
  正文文件与二进制文件的生成程序除文件打开方式不同外,它们的程序结构基本相同。字符(或字节)逐一生成输出,形成新文件的程序结构有:
  int c; /* 也可以是char类型 */
  … /* 说明有关变量和设置初值等 */
  fp = fopen(文件名,“W”); /* 或fP=fopen(文件,“wb”) */
  while(还有字符(或字节)) {
  … /* 生成字符(或字节)存于变量c */
  fpute( c,fp); /* 将生成的字符(或字节)输出 */
  }
  fclose(fp);
  … /* 输出程序结束报告 */
  这里的函数fputc()的说明形式为
  int fputc( char ch, FILE *fp)
  该函数的功能是将ch中的字符输出到与fp文件指针相联系的文件中。函数fputc()返回一个整数值。如果输出成功,则返回值就是输出字符的ASCII代码值;如果输出失败,则返回EOF,即-1。
  曾介绍过的函数putchar()是在stdio.h中用函数fputc()定义的宏:
  # define putchar(c) fputc(c, stdout)
  用宏putchar(c) 比写fputc(c,stdout) 在概念上更简单一些。从使用者来说,可以把putchar(c) 看作函数调用,不必严格地称它为宏调用。
  4. 数据成块输入/输出函数
  为加快程序的处理速度,程序可以成批地读人文件中的数据,也可成批地写数据到文件。它们是函数fread()和fwrite()。
  成批读函数fread()的说明形式为
  int fread(char *buf,int size, int count, FILE *rfp);
  成批写函数fwrite() 的说明形式为
  int fwrite( char *buf, int size, int count,FILE *wfp);
  其中,buf是字符数组首元指针。对fread()来说,它是读人数据的存放开始地址;对bote()来说,是要输出数据的开始地址。size是读写的数据块的字节数。count为要进行读写的数据块的个数。rfp和wfp为文件指针。调用上述函数共读写size。 count个字节或字符。函数fread()和fwrite()的返回值是实际完成输入或输出的数据块的个数。一般情况下,输出调用成功,返回值为count的值。
  如果是读写二进制文件,用函数fread()和fwrite()可以读写任何类型的信息。如有一个如下形式的通信录结构类型:
  typedef struct {
  char name[21]; /* 名字 */
  char phone[15]; /* 电话 */
  char zip[10]; /* 邮编 */
  char addr[31]; /* 地址 */
  } infoType;
  利用类型infoType,可定义数组,如:
  infoType info[30];
  表示结构数组info[]能存放30个通信录数据。而下面的两个函数调用能分别实现20个通信录信息从某文件读出和写入某文件:
  fread( info,sizeof(infoType),20,rfp);
  fwrite( info,sizeo(infoType),20,wfp);
  5.格式输入/输出库函数
  与用函数scanf()从标准设备输入和用函数printf()向标准设备输出一样,一般文件也可进行格式输入和格式输出。
  函数fscanf()和fprintf()分别能对一般文件进行格式输入和格式输出。它们的调用形式分别为
  fscantf(文件指针,格式字符串,输入项地址表)
  和
  fprintf(文件指针,格式字符串,输出项表)
  例如:
  fscanf(rp,“%d%f”,&i,&r);
  fprintf(wp,“i=%d, r=%6.4f\n”, i,r);
  前者表示从与叩相联系的文件为变量i和r读人数据;后者表示将整型变量i和实型变量r的值按格式输出到与呷相联系的文件上。
  6.字符串输入/输出库函数
  函数fgets()和fputs()分别用于从正文文件输入字符串和向正文文件输出字符串。它们的说明形式分别为
  char *fgets(char *str,int n, FILE *fp)
  和
  fputs(char *str, FILE *fp)
  函数fgets() 用于从文件读取字符序列,并存于字符指针所指出的存储区域中。当连续读人n-1个字符,或遇到换行符时,读字符过程结束。

本新闻共6页,当前在第4页  1  2  3  4  5  6  

我要投稿 新闻来源: 编辑: 作者:
相关新闻