微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题任意文件内汉字或英文信息的显示
栏目软件操作与技巧
作者江西 黄焕如
发布1993-03-19
  笔者利用Turbo C 2.00编制了一个小程序XS.C,经过编译和链接成EXE文件,可在DOS下直接执行,能显示任何文件内的汉字或英文信息。执行该程序时必须带两个参数,第一个参数是文件名,第二个参数是汉字或英文字符长度。
  例如某用户希望查阅压缩软件LHARC内信息:
  C>XS LHARC.EXE 10
  如果觉得显示的信息太细,可加大第二个参数的数值。一般说来,第二个参数数值愈大,显示的信息就愈少。如果利用DOS的重定向技术,还能将信息存入文件或打印输出,如:
  C>XS LHARC.EXE 20>(文件名)或(PRN)
  该程序的设计原理是:打开需要显示汉字或英文的文件后,读入字符并且判断该字符是否是可显示字符(0x20和0x7e之间)或者是汉字(大于0xal),然后存入数组str内,再根据第二个参数来确定是否在屏幕上显示该字符串信息。
  /*XS<文件名>*/
  /*使用方法:c>XS<文件名>字符长度*/
  #include"stdio.h"
  #include"ctype.h"
  #include"stdlib.h"
  main
  (argc,argv)
  intargc;char*argv[];
  {file*fp;
  char*str;int i,j,k;
  if(argc!=3){
  printf("usage:c>xs<filename><parameter>\n");
  exit(1);}
  if((fp=fopen(argv[1],"rb"))=null{
  printf("can'topenfile\n");exit(1);}
  while(!feof(fp)){
  k=getc(fp);/*读一字符*/
  i=0;
  /*是否可打印字符或汉字*/
  if(isprint(k)||k>0xal){
  do{
  /*将字符装入字符数组*/
  str[i]=k;
  i++;
  k=getc(fp);}
  while((isprint(k)||k>0xal)&&!feof(fp));
  }
  /*是否字符串长度超过argv[2]个*/
  if(i>=atoi(argv[2])){
  for(j=0;j<i;j++)printf("%c",str[j]);
  printf("\n");}
  }
  fclose(fp);
  exit(1);
  }(江西 黄焕如)