📄 新建 文本文档.txt
字号:
#include <stdio.h>
#include <malloc.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#define Usernum 3
#define Filenum 6
#define Opennum 2
typedef struct
{
char filename;
int right; //0-可读 1-可写 2-可读写
int length;
int flag; //标志文件是否被打开
}Ufd;
Ufd UFD[Filenum];
typedef struct
{
char username[10];
//int startaddress;
int count;
Ufd UFD[Filenum];
}Mfd;
Mfd MFD[Usernum];
void Incitialize()
{
int i,j;
for(i=0;i<Usernum;i++)
{
MFD[i].UFD[j].filename=NULL;
MFD[i].UFD[j].flag=0;
MFD[i].UFD[j].length=0;
MFD[i].UFD[j].right=3;
}
}
void READ()
{
}
void create(int k)
{
int i=0,length,right;
char name;
printf("请输入文件名:");
cin>>name;
while(i<Filenum)
if(MFD[k].UFD[i].filename!=NULL)
{
if(MFD[k].UFD[i].filename==name)
{
printf("该文件已经存在!");
return;
}
i++;
}
else break;
if(i==Filenum)
{
printf("用户文件已满,不可再创建!");
return;
}
printf("请输入文件的长度和权限:");
cin>>length;
cin>>right;
for(i=0;i<Filenum;i++)
{
if(MFD[k].UFD[i].filename==NULL)
{
MFD[k].UFD[i].filename=name;
MFD[k].UFD[i].length=length;
MFD[k].UFD[i].right=right;
printf("创建成功!");
break;
}
}
}
void open(int k)
{
int i=0;
char name;
printf("请输入文件名:");
cin>>name;
while(i<Filenum)
if(MFD[k].UFD[i].filename==name)
{
printf("文件已经打开!");
MFD[k].UFD[i].flag=1;
return;
}
else
i++;
if(i==Filenum)
printf("不存在该文件!\n");
}
void close(int k)
{
int i=0;
char name;
printf("请输入文件名:");
cin>>name;
while(i<Filenum)
if(MFD[k].UFD[i].filename==name)
if(MFD[k].UFD[i].flag==1)
{
printf("文件已经成功关闭!\n");
MFD[k].UFD[i].flag=0;
return;
}
else
{
printf("文件本已处于关闭状态!\n");
return;
}
else i++;
if(i==Filenum)
printf("不存在该文件!\n");
}
void Read(int k)
{
int i=0;
char name;
printf("请输入文件名:");
cin>>name;
while(i<Filenum)
if(MFD[k].UFD[i].filename==name)
if(MFD[k].UFD[i].right==0||MFD[k].UFD[i].right==2)
if(MFD[k].UFD[i].flag==1)
{
printf("文件已经成功读取!\n");
return;
}
else
{
printf("文件处于关闭状态!请先执行打开命令再进行读取!\n");
return;
}
else
{
printf("对该文件没有读权限!\n");
return;
}
else i++;
if(i==Filenum)
printf("不存在该文件!\n");
}
void Write(int k)
{
int i=0;
char name;
printf("请输入文件名:");
cin>>name;
while(i<Filenum)
if(MFD[k].UFD[i].filename==name)
if(MFD[k].UFD[i].right==0||MFD[k].UFD[i].right==1)
if(MFD[k].UFD[i].flag==1)
{
printf("文件已经成功写入!\n");
return;
}
else
{
printf("文件处于关闭状态!请先执行打开命令再进行写入!\n");
return;
}
else
{
printf("对该文件没有写权限!\n");
return;
}
else i++;
if(i==Filenum)
printf("不存在该文件!\n");
}
void main()
{
//char user[10];
int i,order,use;
/*READ();
Incitialize();
printf("请输入用户名:\n");
scanf("%s",user);
for(i=0;i<Usernum;i++)
if(strcmp(user,MFD[i].username)==0)
break;
if(i==Usernum)
{
printf("对不起,不存在该用户的信息!\n");
exit(0);
}*/
// Incitialize();
printf("请选择用户(1 2 3):");
scanf("%d",&use);
printf("请输入对文件的命令:\n1:建立\n2:打开\n3:关闭\n4:读\n5:写\n6:退出\n");
scanf("%d",&order);
while(order!=6)
{
switch(order)
{
case 1:
create(use);break;
case 2:
open(use);break;
case 3:
close(use);break;
case 4:
Read(use);break;
case 5:
Write(use);break;
}
printf("\n请输入对文件的命令:\n1:建立\n2:打开\n3:关闭\n4:读\n5:写\n6:退出\n");
scanf("%d",&order);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -