www.pudn.com > TP333.3_S886.rar > CWMAIN.C


//******************************************** 
//文件名:CWMAIN.C 
//功能:1. 调用显示汉字函数 
//      2. 调用字符处理函数 
//      3. 将文件数据写入扇区 
//******************************************** 
#include                             //1. 
#include                           //2. 
#include                              //3. 
#include                              //4. 
#include                              //5. 
#include                               //6. 
#include                              //7. 
#include                                 //8. 
#include                             //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.定义全局数组变量