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

📄 sblock.c

📁 硬盘扇区读写技术-修复硬盘与恢复文件随书源代码
💻 C
字号:
//********************************************
//文件名:SBLOCK.C
//功能:将源扇区文件数据块写入目的扇区文件中去
//********************************************
#include<stdio.h>                         //1.
#include<conio.h>                         //2.
#include<stdlib.h>                        //3.
#include<ctype.h>                         //4.
void main()                               //5.
{                                         //6.
   FILE *fp1,*fp2;                        //7.
   char *sp1,*sp2;                        //8.
   int i,j,k=0;                           //9.
   char ch;                               //10.
                                          //11.
   printf("Enter SOURCE file name: ");    //12.
   scanf("%s",sp1);                       //13.源扇区文件
   printf("Enter TARGET file name: ");    //14.
   scanf("%s",sp2);                       //15.目的扇区文件
   clrscr();                              //16.清屏
   printf("Show source file "             //17.提示
      "press key [S]\n");                 //18.
   printf("Show target file press "       //19.提示
      "key [T]\n");                       //20.
   printf("Copy file block press "        //21.提示
      "key [C]\n");                       //22.
   printf("Quit press key [Esc]\n");      //23.提示
   while(1)                               //24.
   {                                      //25.
     k=toupper(getch());                  //26.接收字符并转为大写
     if(k==83)                            //27.若字符为"S"
     {                                    //28.
       clrscr();                          //29.
       printf("Show source file "         //30.
          "press key [S]\n");             //31.
       printf("Show target file "         //32.
          "press key [T]\n");             //33.
       printf("Copy file block "          //34.
          "press key [C]\n");             //35.
       printf("Quit press key [Esc]\n");  //36.
       fp1=fopen(sp1,"rb");               //37.打开源文件
       for(i=1;i<=512;i++)                //38.
       {                                  //39.
         j=fgetc(fp1);                    //40.
         printf("%2x",j);                 //41.显示十六进制数据
         if(i%32==0)                      //42.
	   printf("\n");                  //43.
       }                                  //44.
       fclose(fp1);                       //45.
     }                                    //46.
     if(k==84)                            //47.若字符为"T"
     {                                    //48.
       clrscr();                          //49.
       printf("Show source file "         //50.
          "press key [S]\n");             //51.
       printf("Show target file "         //52.
          "press key [T]\n");             //53.
       printf("Copy file block "          //54.
          "press key [C]\n");             //55.
       printf("Quit press key [Esc]\n");  //56.
       fp1=fopen(sp2,"rb");               //57.打开目的文件
       for(i=1;i<=512;i++)                //58.
       {                                  //59.
         j=fgetc(fp1);                    //60.
         printf("%2x",j);                 //61.显示十六进制数据
         if(i%32==0)                      //62.
	   printf("\n");                  //63.
       }                                  //64.
       fclose(fp1);                       //65.
     }                                    //66.
     if(k==67)                            //67.若字符为"C"
     {                                    //68.
       printf("\n");                      //69.
       printf("Enter starting bytes: ");  //70.
       scanf("%d",&i);                    //71.起始字节编号
       printf("Enter finishing bytes: "); //72.
       scanf("%d",&j);                    //73.终止字节编号
       fp1=fopen(sp1,"rb");               //74.只读方式打开源文件
       fp2=fopen(sp2,"rb+");              //75.读写方式打开目的文件
       fseek(fp1,i-1,0);                  //76.移动源文件指针
       fseek(fp2,i-1,0);                  //77.移动目的文件指针
       for(;i<=j;i++)                     //78.
       {                                  //79.
         ch=fgetc(fp1);                   //80.从源文件中读字符
         fputc(ch,fp2);                   //81.写入目的文件
       }                                  //82.
       fclose(fp1);                       //83.
       fclose(fp2);                       //84.
       clrscr();                          //85.
       printf("Show source file "         //86.
          "press key [S]\n");             //87.
       printf("Show target file "         //88.
          "press key [T]\n");             //89.
       printf("Copy file block "          //90.
          "press key [C]\n");             //91.
       printf("Quit press key [Esc]\n");  //92.
     }                                    //93.
     if(k==27)                            //94.若为"Esc"
       exit(0);                           //95.退出
   }                                      //96.
}                                         //97.

⌨️ 快捷键说明

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