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

📄 cwmain.c

📁 该代码中包含数十个磁盘以及文件系统信息获取和修复的代码
💻 C
字号:
//********************************************
//文件名:CWMAIN.C
//功能:1. 调用显示汉字函数
//      2. 调用字符处理函数
//      3. 将文件数据写入扇区
//********************************************
#include<string.h>                             //1.
#include<graphics.h>                           //2.
#include<stdio.h>                              //3.
#include<conio.h>                              //4.
#include<ctype.h>                              //5.
#include<bios.h>                               //6.
#include<fcntl.h>                              //7.
#include<io.h>                                 //8.
#include<stdlib.h>                             //9.
int outhz(int,int,char *,int);                 //10.对调用函数的声明
void finame(int,int);                          //11.对调用函数的声明
void main()                                    //12.
{                                              //13.
   char ch=0;                                  //14.
   char h[512];                                //15.
   FILE *fp;                                   //16.
   char *p;                                    //17.
   int i;                                      //18.
   int cyl=0,head=0,sector;                    //19.
   extern char gsh[16];                        //20.声明数组是外部变量
   int gdriver=DETECT,gmode;                   //21.将图形驱动定义为自动检测
                                               //22.
   registerbgidriver(EGAVGA_driver);           //23.装入图形驱动程序
   initgraph(&gdriver,&gmode,"");              //24.初始化图形屏幕
   setbkcolor(0);                              //25.设置背景颜色
   cleardevice();                              //26.清除整个屏幕
   outhz(0,20,"输入文件名:",7);               //27.调用显示函数并传递参数
   finame(100,20);                             //28.调用字符处理函数
   strcpy(p,gsh);                              //29.拷贝字符串
                                               //30.
   while(1)                                    //31.
   {                                           //32.
     if((fp=fopen(gsh,"rb"))==NULL)            //33.如果打开文件失败
     {                                         //34.
       cleardevice();                          //35.
       setviewport(0,0,200,20,0);              //36.设置新视区
       outhz(0,20,"输入的文件名没有找到!",7); //37.
       outhz(0,40,"是否继续输入文件名"         //38.
            "(Y/N)?",7);                 //39.
       ch=toupper(getch());                    //40.接收一个字符并转为大写
       while((ch==78)||(ch==89))               //41.是否为N或Y
       {                                       //42.
         if(ch==78)                            //43.若为N
         {                                     //44.
           closegraph();                       //45.关闭图形方式
           exit(0);                            //46.退出程序
         }                                     //47.
         if(ch==89)                            //48.若为Y
         {                                     //49.
           cleardevice();                      //50.
           outhz(0,20,"输入文件名:",7);       //51.
           finame(100,20);                     //52.
           strcpy(p,gsh);                      //53.
           break;                              //54.退出循环
         }                                     //55.
       }                                       //56.
     }                                         //57.
     else                                      //58.否则
       break;                                  //59.
   }                                           //60.
                                               //61.
   i=open(gsh,O_CREAT);                        //62.打开文件
   if(filelength(i)!=512)                      //63.若字节数不等于512
   {                                           //64.
     close(i);                                 //65.关闭文件
     cleardevice();                            //66.
     setviewport(0,0,200,20,0);                //67.
     outhz(0,20,"输入的扇区数据文件名错误!",7);//68.
     outhz(0,40,"按一个键退出",7);             //69.
     getch();                                  //70.接收一个字符
     closegraph();                             //71.
     exit(0);                                  //72.
   }                                           //73.
   close(i);                                   //74.
                                               //75.
   setviewport(0,20,200,40,0);                 //76.
   outhz(0,20,"输入存储数据的扇区编号:",7);   //77.
   finame(210,40);                             //78.
   sector=atoi(gsh);                           //79.将字符串转为int型的值
   fp=fopen(p,"rb");                           //80.以只读方式打开文件
   for(i=0;i<=511;i++)                         //81.
     h[i]=fgetc(fp);                           //82.将文件数据读入数组
   biosdisk(0x03,0x80,head,cyl,sector,1,h);    //83.调用函数将数据写入扇区
   fclose(fp);                                 //84.
   closegraph();                               //85.
}                                              //86.
char gsh[16];                                  //87.定义全局数组变量

⌨️ 快捷键说明

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