📄 cofimain.c
字号:
//********************************************
//文件名:COFIMAIN.C
//功能:1. 调用显示汉字函数
// 2. 调用字符处理函数
// 3. 调用读扇区汇编子程序
// 4. 通过连续读取扇区,每次恢复一个簇的文件数据
//********************************************
#include<string.h> //1.
#include<graphics.h> //2.
#include<stdio.h> //3.
#include<stdlib.h> //4.
#include<conio.h> //5.
#include<ctype.h> //6.
extern RHD(int,int,int,int,char *); //7.声明读扇区汇编子程序
int outhz(int,int,char *,int); //8.声明汉字显示函数
void finame(int,int); //9.声明字符处理函数
void main() //10.
{ //11.
FILE *tmfp,*fp; //12.
int i,j; //13.
int c,y=0; //14.
unsigned int m; //15.
unsigned char h[512]; //16.
char name[13]; //17.
char sh[13]; //18.
unsigned long k; //19.
unsigned char s1,s2,s3,s4; //20.
extern char gsh[16]; //21.
int gdriver=DETECT,gmode; //22.
registerbgidriver(EGAVGA_driver); //23.
initgraph(&gdriver,&gmode,""); //24.
setbkcolor(0); //25.
cleardevice(); //26.
//27.
setviewport(0,20,400,40,0); //28.
outhz(0,0,"输入需要建立的文件名:",7); //29.
finame(190,20); //30.
strcpy(sh,gsh); //31.
if((fp=fopen(gsh,"rb"))!=NULL) //32.
{ //33.
fclose(fp); //34.
setviewport(0,20,400,40,0); //35.
strcat(gsh,"文件在当前目录下" //36.
"已经存在!"); //37.
outhz(0,20,gsh,14); //38.
outhz(0,40,"是否继续运行" //39.
"(Y/N)?",15); //40.
c=toupper(getch()); //41.
while((c==78)||(c==89)) //42.
{ //43.
if(c==78) //44.
{ //45.
closegraph(); //46.
exit(0); //47.
} //48.
if(c==89) //49.
break; //50.
} //51.
y=40; //52.调整坐标
} //53.
setviewport(0,y+40,400,y+60,0); //54.
outhz(0,0,"输入簇的起始扇区号:",7); //55.
finame(170,y+40); //56.
k=atol(gsh); //57.
setviewport(0,y+60,400,y+80,0); //58.
outhz(0,0,"输入每簇占用的扇区数:",7); //59.
finame(190,y+60); //60.
m=atoi(gsh); //61.
for(j=1;j<=m;j++) //62.
{ //63.
tmfp=tmpfile(); //64.
fwrite(&k,4,1,tmfp); //65.
rewind(tmfp); //66.
fread(&s4,1,1,tmfp); //67.
fread(&s3,1,1,tmfp); //68.
fread(&s2,1,1,tmfp); //69.
fread(&s1,1,1,tmfp); //70.
fclose(tmfp); //71.
tmpnam(name); //72.
RHD(s1,s2,s3,s4,name); //73.调用读扇区汇编子程序
fp=fopen(name,"rb"); //74.
for(i=0;i<=511;i++) //75.
{ h[i]=fgetc(fp); } //76.
fclose(fp); //77.
fp=fopen(sh,"ab+"); //78.以填加方式打开文件
for(i=0;i<=511;i++) //79.
{ fputc(h[i],fp); } //80.
fclose(fp); //81.
k++; //82.扇区号增1
remove(name); //83.
} //84.
closegraph(); //85.
} //86.
char gsh[16]; //87.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -