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

📄 0semain.c

📁 显示0磁道扇区数据代码
💻 C
字号:
//********************************************
//文件名:0SEMAIN.C
//功能:1. 调用显示汉字函数
//      2. 调用字符处理函数
//      3. 监视0磁道63个扇区的数据变化
//********************************************
#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<bios.h>                          //7.
int outhz(int,int,char *,int);            //8.
void main()                               //9.
{                                         //10.
  char h[512];                            //11.
  int i,j,k;                              //12.
  int x,y1=0,y2=20;                       //13.
  FILE *fp;                               //14.
  long t=0,u=0;                           //15.
  char *p1="扇区:";                      //16.
  char *p2="0磁道63个扇区字节"         //17.
  "总的算术和是:";                       //18.
  char p[30],s[30];                       //19.
  char *p3;                               //20.
  int gdriver=DETECT,gmode;               //21.
  registerbgidriver(EGAVGA_driver);       //22.
  initgraph(&gdriver,&gmode,"");          //23.
  setbkcolor(0);                          //24.
  cleardevice();                          //25.
                                          //26.
  if((fp=fopen("h0se63.txt","rb"))!=NULL) //27. 如果打开文件成功
  {                                       //28.
    fclose(fp);                           //29.
    setviewport(0,0,400,20,0);            //30.
    outhz(0,20,"本程序需要建立"           //31.
      "[H0SE63.TXT]文件",7);              //32.
    outhz(0,40,"使用该名字的文件"         //33.
      "在当前目录下已经存在!",14);       //34.
    outhz(0,60,"是否继续运行"             //35.
    "(Y/N)?",15);                   //36.
    k=toupper(getch());                   //37.
    while((k==78)||(k==89))               //38.
    {                                     //39.
      if(k==78)                           //40.
      {                                   //41.
        closegraph();                     //42.
        exit(0);                          //43.
      }                                   //44.
      if(k==89)                           //45.
        break;                            //46.
    }                                     //47.
  }                                       //48.
                                          //49.
  cleardevice();                          //50.
  setviewport(0,0,620,20,0);              //51.
  outhz(0,0,"0磁道每一个扇区"            //52.
  "字节的算术和:",7);                    //53.
  fp=fopen("h0se63.txt","w");             //54. 以写方式打开文件
  fprintf(fp,"0磁道每一个扇区"           //55. 将字符串输出到文件
  "字节的算术和:\n");                    //56.
  for(j=1;j<=63;j++)                      //57.
  {                                       //58.
    setviewport(0,y1,620,y2,0);           //59.
    x=0;                                  //60.
    for(k=1;k<=3;k++)                     //61.
    {                                     //62.
      biosdisk(0x02,0x80,0,0,j,1,h);      //63. 读一个扇区数据
      for(i=0;i<=511;i++)                 //64.
      {                                   //65.
        t+=h[i];                          //66. 算术和累加
        u+=h[i];                          //67.
      }                                   //68.
      itoa(j,p,10);                       //69. 扇区数转字符串
      if(j<=9)                            //70.
      {                                   //71.
        *p3=32;                           //72. 存入空格
        *(p3+1)=*p;                       //73. 存入字符
        *(p3+2)='\0';                     //74. 补结束符
        strcpy(p,p3);                     //75. 拷贝字符串
      }                                   //76.
      strcat(p,p1);                       //77. 字符串相接
      fprintf(fp,"%s",p);                 //78. 将字符串输出到文件
      fprintf(fp,"%8ld      ",u);         //79. 将数值输出到文件
      ltoa(u,s,10);                       //80. 算术和转字符串
      strcat(p,s);                        //81.
      outhz(x,20,p,7);                    //82.
      u=0;                                //83.
      if(j%3==0)                          //84. 三个扇区换行
      {                                   //85.
        fprintf(fp,"\n");                 //86.
      }                                   //87.
      j++;                                //88.
      x=x+200;                            //89. 坐标调整
    }                                     //90.
    j--;                                  //91.
    y1=y1+20;                             //92. 坐标调整
    y2=y2+20;                             //93.
  }                                       //94.
  ltoa(t,s,10);                           //95. 总算术和转字符串
  strcat(p2,s);                           //96.
  setviewport(0,420,620,460,0);           //97.
  outhz(0,20,p2,7);                       //98.
  outhz(0,40,"按任一键退出",7);           //99.
  fprintf(fp,"%s",p2);                    //100.
  fclose(fp);                             //101.
  getch();                                //102.
  closegraph();                           //103.
}                                         //104.

⌨️ 快捷键说明

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