【自制系列】自制文本编辑器(控制台版本) 第一篇
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 struct USER{ 6 char name[100]; 7 int password; 8 }user[10000]; 9 int size=0; 10 11 int check_user(struct USER u){ 12 for(int i=0;i<size;i++){ 13 if((strcmp(u.name,user[i].name)==0) && u.password==user[i].password)return 1; 14 } 15 return 0; 16 } 17 18 int main(void){ 19 struct FILE* userinfo; 20 userinfo=fopen("userinfo.txt","r"); 21 int i=0; 22 fscanf(userinfo,"%d",&size); 23 for(int i=0;i<size;i++){ 24 fscanf(userinfo,"%s %d",user[i].name,&user[i].password); 25 //printf("%s %d\n",user[i].name,user[i].password); 26 } 27 28 char s[100]; 29 struct USER curr_user; 30 int flag=0;//如果当前有用户正在运行标记为1,否则为0 31 for(;;){ 32 putchar('>'); 33 scanf("%s",&s); 34 if(strcmp(s,"login")==0){ 35 scanf("%s %d",curr_user.name,&curr_user.password); 36 int i=check_user(curr_user); 37 if(!i)printf("密码错误或用户名错误。\n"); 38 else{ 39 flag=1; 40 } 41 } 42 else if(strcmp(s,"logoff")==0){ 43 flag=0; 44 } 45 else if(strcmp(s,"getuser")==0){ 46 if(flag==0)printf("无用户登录\n"); 47 else printf("%s\n",curr_user.name); 48 } 49 else{ 50 printf("%s不是可执行的指令。\n",s); 51 } 52 } 53 }
功能:
login 用户名 密码 用于登录用户
logoff 用于登出用户
getuser 用于获取当前正在运行的账户
第一篇比较简单,就不多说了。之后会加入更多的功能,例如打开文档,编辑文档等。
简单的说明:
check_user()用于判断用户名和密码
userinfo.txt用于存放用户名和密码信息,以后增加了”添加账户“功能后,会往里面写入用户信息,现在只有读取的功能
flag用于标记当前是否有用户正在运行
curr_user标记正在运行的用户是哪一个
(getuser指令其实是用来调试的)