⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compmain.c

📁 该代码中包含数十个磁盘以及文件系统信息获取和修复的代码
💻 C
字号:
//********************************************
//文件名:COMPMAIN.C
//功能:1. 调用显示汉字函数
//      2. 调用字符处理函数
//      3. 比较两个扇区文件,报告不相同的字节编号
//********************************************
#include<string.h>                          //1.
#include<graphics.h>                        //2.
#include<stdio.h>                           //3.
#include<conio.h>                           //4.
#include<stdlib.h>                          //5.
#include<ctype.h>                           //6.
#include<fcntl.h>                           //7.
#include<io.h>                              //8.
int outhz(int,int,char *,int);              //9.
void finame(int,int);                       //10.
unsigned char h[512];                       //11.
void main()                                 //12.
{                                           //13.
  FILE *fp1,*fp2,*fp3;                      //14.
  long i=1,j=0;                             //15.
  char *p="不相同的字节总数是:";           //16.
  char *sp1,*sp2;                           //17.
  char ch1,ch2;                             //18.
  int k;                                    //19.
  extern char gsh[16];                      //20.
  int gdriver=DETECT,gmode;                 //21.
  registerbgidriver(EGAVGA_driver);         //22.
  initgraph(&gdriver,&gmode,"");            //23.
  setbkcolor(0);                            //24.
  cleardevice();                            //25.
                                            //26.
  outhz(0,20,"输入比较的"                   //27.
  "第一个文件名:",7);                      //28.
  finame(210,20);                           //29.
  strcpy(sp1,gsh);                          //30.
  while(1)                                  //31.
  {                                         //32.
    if((fp1=fopen(sp1,"rb"))==NULL)         //33.
    {                                       //34.
      cleardevice();                        //35.
      setviewport(0,0,200,20,0);            //36.
      outhz(0,20,"输入的第一个文件名"       //37.
      "没有找到!",7);                      //38.
      outhz(0,40,"是否继续输入第一个"       //39.
      "文件名(Y/N)?",7);              //40.
      k=toupper(getch());                   //41.
      while((k==78)||(k==89))               //42.
      {                                     //43.
        if(k==78)                           //44.
        {                                   //45.
          closegraph();                     //46.
          exit(0);                          //47.
        }                                   //48.
        if(k==89)                           //49.
        {                                   //50.
          cleardevice();                    //51.
          outhz(0,20,"输入比较的第一个"     //52.
          "文件名:",7);                    //53.
          finame(210,20);                   //54.
          strcpy(sp1,gsh);                  //55.
          break;                            //56.
        }                                   //57.
      }                                     //58.
    }                                       //59.
    else                                    //60.
      break;                                //61.
  }                                         //62.
  k=open(sp1,O_CREAT);                      //63.
  if(filelength(k)!=512)                    //64.
  {                                         //65.
    close(k);                               //66.
    cleardevice();                          //67.
    setviewport(0,0,200,20,0);              //68.
    outhz(0,20,"输入的第一个文件名"         //69.
     "错误!",14);                          //70.
    outhz(0,40,"按任一键退出",15);          //71.
    getch();                                //72.
    closegraph();                           //73.
    exit(0);                                //74.
  }                                         //75.
  close(k);                                 //76.
                                            //77.
  cleardevice();                            //78.
  setviewport(0,0,200,20,0);                //79.
  outhz(0,20,"输入比较的"                   //80.
  "第二个文件名:",7);                      //81.
  finame(210,20);                           //82.
  strcpy(sp2,gsh);                          //83.
  while(1)                                  //84.
  {                                         //85.
    if((fp2=fopen(sp2,"rb"))==NULL)         //86.
    {                                       //87.
      cleardevice();                        //88.
      setviewport(0,0,200,20,0);            //89.
      outhz(0,20,"输入的第二个文件名"       //90.
      "没有找到!",7);                      //91.
      outhz(0,40,"是否继续输入第二个"       //92.
      "文件名(Y/N)?",7);              //93.
      k=toupper(getch());                   //94.
      while((k==78)||(k==89))               //95.
      {                                     //96.
        if(k==78)                           //97.
        {                                   //98.
          closegraph();                     //99.
          exit(0);                          //100.
        }                                   //101.
        if(k==89)                           //102.
        {                                   //103.
          cleardevice();                    //104.
          outhz(0,20,"输入比较的第二个"     //105.
          "文件名:",7);                    //106.
          finame(210,20);                   //107.
          strcpy(sp2,gsh);                  //108.
          break;                            //109.
        }                                   //110.
      }                                     //111.
    }                                       //112.
    else                                    //113.
      break;                                //114.
  }                                         //115.
  k=open(sp2,O_CREAT);                      //116.
  if(filelength(k)!=512)                    //117.
  {                                         //118.
    close(k);                               //119.
    cleardevice();                          //120.
    setviewport(0,0,200,20,0);              //121.
    outhz(0,20,"输入的第二个文件名"         //122.
     "错误!",14);                          //123.
    outhz(0,40,"按任一键退出",15);          //124.
    getch();                                //125.
    closegraph();                           //126.
    exit(0);                                //127.
  }                                         //128.
  close(k);                                 //129.
                                            //130.
  if((fp3=fopen("compsf.txt","rb"))!=NULL)  //131.如果打开文件成功
  {                                         //132.
    fclose(fp3);                            //133.
    cleardevice();                          //134.
    setviewport(0,0,400,20,0);              //135.
    outhz(0,20,"本程序需要建立"             //136.
      "[COMPSF.TXT]文件",7);                //137.
    outhz(0,40,"使用该名字的文件"           //138.
      "在当前目录下已经存在!",14);         //139.
    outhz(0,60,"是否继续运行"               //140.
    "(Y/N)?",15);                     //141.
    k=toupper(getch());                     //142.
    while((k==78)||(k==89))                 //143.
    {                                       //144.
      if(k==78)                             //145.
      {                                     //146.
        closegraph();                       //147.
        exit(0);                            //148.
      }                                     //149.
      if(k==89)                             //150.
        break;                              //151.
    }                                       //152.
  }                                         //153.
  fp3=fopen("compsf.txt","wb");             //154.以写方式打开文件
  fprintf(fp3,"不相同的字节编号是:\n");     //155.向文件输出字符串
  while(!feof(fp1))                         //156.测试文件尾
  {                                         //157.
    ch1=fgetc(fp1);                         //158.读文件1的字符
    ch2=fgetc(fp2);                         //159.读文件2的字符
    if(ch1!=ch2)                            //160.若字符不相等
    {                                       //161.
      fprintf(fp3,"%ld\n",i);               //162.将字节编号写入文件
      j++;                                  //163.不相等字节计数
    }                                       //164.
    i++;                                    //165.
  }                                         //166.
  fprintf(fp3,"比较结束\n");                //167.
  fclose(fp1);                              //168.
  fclose(fp2);                              //169.
  fclose(fp3);                              //170.
  if(j==0)                                  //171.若不相等字节为0
  {                                         //172.
    cleardevice();                          //173.
    setviewport(0,0,200,20,0);              //174.
    remove("compsf.txt");                   //175.删除文件
    outhz(0,20,"没有找到不相同的字节",7);   //176.
    outhz(0,40,"按任一键退出",7);           //177.
    getch();                                //178.
  }                                         //179.
  else                                      //180.否则
  {                                         //181.
    cleardevice();                          //182.
    setviewport(0,0,200,20,0);              //183.
    ltoa(j,sp1,10);                         //184.将数转为字符串
    strcat(p,sp1);                          //185.两字符串相接
    outhz(0,20,p,7);                        //186.
    outhz(0,40,"不相同的字节编号存储在"     //187.
    "文件[compsf.txt]中",7);                //188.
    outhz(0,60,"按任一键退出",7);           //189.
    getch();                                //190.
  }                                         //191.
  closegraph();                             //192.
}                                           //193.
char gsh[16];                               //194.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -