📄 0semain.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 + -