?? 文件模擬.cpp
字號:
#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=0;
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;
int 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 + -