📄 main.cpp
字号:
#include"file.h"
extern void write(char *tmpname,int tmplen);
extern void cover(char *tmpname,int tmplen);
extern void insert(char *tmpname,int insertpoint);
//文件结构数组
fileinfo file[FILENUM];
int filenum;//文件数量
int FAT[DISC],blankspace;//FAT表和剩余空间
int main(int argc,char *argv[])
{
char tmpname[FILENAMELEN];
int tmplen;//要写入文件长度
int order;//命令
filenum=0;
//初始化FAT表
for(int i=0;i<DISC;i++)
FAT[i]=0;
FAT[0]=FDF;
FAT[1]=FFF;
blankspace=98;
while(1)
{
cout<<"Select the operation:"<<endl<<"1 for writing"<<endl<<"2 for inserting"<<endl;
cout<<"other numbers to quit"<<endl;
cin>>order;
switch(order)
{
case 1: cout<<"Input the name of the file"<<endl;
cin>>tmpname;
cout<<"Input the length of the file"<<endl;
cin>>tmplen;
//判断是否有重名文件
for(i=0;i<filenum;i++)
if(strcmp(file[i].filename,tmpname)==0)
{ //若同意覆盖,则进入覆盖函数,否则进行下一次操作
cout<<"Cover the quondam file?(y/n)"<<endl;
char tmpch=getchar();
if(tmpch == 'y' || tmpch == 'Y')
{
cover(tmpname,tmplen);
break;
}
else break;
}
//若无重名文件则写入,写入前判断是否有足够空间
if(tmplen>blankspace)
{
cout<<"not enough space!"<<endl;
break;
}
if(i==filenum) write(tmpname,tmplen);
break;
case 2: cout<<"Input the name of the file"<<endl;
cin>>tmpname;
int insertpoint;
cout<<"Input the breakpoint of the file"<<endl;
cin>>insertpoint;
for(i=0;i<filenum;i++)
if(strcmp(file[i].filename,tmpname)==0)
break;
if(i==filenum)
{
cout<<"There isn't the file with this name"<<endl;
break;
}
//若无空间,则不插入
if(blankspace==0)
{
cout<<"not enough space!"<<endl;
break;
}
insert(tmpname,insertpoint);
break;
default :break;
}
//询问是否继续输入命令
cout <<endl<<endl<<endl<< "Go on?(y/n)"<<endl;
fgets(tmpname, sizeof(tmpname), stdin);
if(*tmpname != 'y' && *tmpname != 'Y')
return 0;
putchar('\n');
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -