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

📄 manmain.c

📁 硬盘扇区读写技术-修复硬盘与恢复文件随书源代码
💻 C
字号:
//********************************************
//文件名:MANMAIN.C
//功能:1. 调用显示汉字函数
//      2. 调用字符处理函数
//      3. 将DISKMAN备份的文件分解成单一的扇区文件
//********************************************
#include<string.h>                      //1.
#include<graphics.h>                    //2.
#include<stdio.h>                       //3.
#include<conio.h>                       //4.
#include<stdlib.h>                      //5.
#include<ctype.h>                       //6.
int outhz(int,int,char *,int);          //7.声明汉字显示函数
void finame(int,int);                   //8.声明字符处理函数
void filename(char *);                  //9.声明文件名检测函数
void main()                             //10.
{                                       //11.
  char h[512];                          //12.
  char name[13];                        //13.
  int i,k=1;                            //14.
  FILE *fp1,*fp2;                       //15.
  char ch;                              //16.
  char sh[4];                           //17.
  char man[8];                          //18.
  extern char gsh[16];                  //19.
  int gdriver=DETECT,gmode;             //20.
  registerbgidriver(EGAVGA_driver);     //21.
  initgraph(&gdriver,&gmode,"");        //22.
  setbkcolor(0);                        //23.
  cleardevice();                        //24.
                                        //25.
  outhz(0,20,"输入文件名:",7);         //26.
  finame(100,20);                       //27.
  strcpy(name,gsh);                     //28.
  while(1)                              //29.
  {                                     //30.
    if((fp1=fopen(name,"rb"))==NULL)    //31.若打开文件失败
    {                                   //32.
      cleardevice();                    //33.
      setviewport(0,0,200,20,0);        //34.
      outhz(0,20,"输入的文件名"         //35.
      "没有找到!",7);                  //36.
      outhz(0,40,"是否继续输入"         //37.
      "文件名(Y/N)?",7);          //38.
      ch=toupper(getch());              //39.
      while((ch==78)||(ch==89))         //40.
      {                                 //41.
        if(ch==78)                      //42.
        {                               //43.
          closegraph();                 //44.
          exit(0);                      //45.
        }                               //46.
        if(ch==89)                      //47.
        {                               //48.
          cleardevice();                //49.
          outhz(0,20,"输入文件名:",7); //50.
          finame(100,20);               //51.
          strcpy(name,gsh);             //52.
          break;                        //53.
        }                               //54.
      }                                 //55.
    }                                   //56.
    else                                //57.
      break;                            //58.
  }                                     //59.
                                        //60.
  fp1=fopen(name,"rb");                 //61.
  while(!feof(fp1))                     //62.测试文件尾
  {                                     //63.
    for(i=0;i<=511;i++)                 //64.
      h[i]=fgetc(fp1);                  //65.
    if(feof(fp1))                       //66.若是文件尾
      break;                            //67.跳出循环
    itoa(k,sh,10);                      //68.
    man[0]='m';                         //69.
    man[1]='a';                         //70.
    man[2]='n';                         //71.
    man[3]='\0';                        //72.
    strcat(man,sh);                     //73.连接字符串
    filename(man);                      //74.调用文件名检测函数
    fp2=fopen(man,"wb");                //75.以写方式打开文件
    for(i=0;i<=511;i++)                 //76.
      fputc(h[i],fp2);                  //77.
    fclose(fp2);                        //78.
    k++;                                //79.
  }                                     //80.
  fclose(fp1);                          //81.
  closegraph();                         //82.
}                                       //83.
char gsh[16];                           //84.定义全局数组变量
					//85.
void filename(char *p)                  //86.文件名检测函数
{                                       //87.
  FILE *fp;                             //88.
  int c;                                //89.
  if((fp=fopen(p,"rb"))!=NULL)          //90.
  {                                     //91.
    fclose(fp);                         //92.
    cleardevice();                      //93.
    setviewport(0,0,400,20,0);          //94.
    outhz(0,20,"本程序需要建立"         //95.
      "文件:",7);                      //96.
    outhz(180,20,p,7);                  //97.
    outhz(0,40,"使用该名字的文件"       //98.
      "在当前目录下已经存在!",14);     //99.
    outhz(0,60,"是否继续运行"           //100.
    "(Y/N)?",15);                 //101.
    c=toupper(getch());                 //102.
    while((c==78)||(c==89))             //103.
    {                                   //104.
      if(c==78)                         //105.
      {                                 //106.
	closegraph();                   //107.
	exit(0);                        //108.
      }                                 //109.
      if(c==89)                         //110.
	break;                          //111.
    }                                   //112.
  }                                     //113.
}                                       //114.

⌨️ 快捷键说明

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