|
楼主 |
发表于 2017-11-23 19:25:21
|
显示全部楼层
本帖最后由 jxjqdb 于 2017-11-23 19:32 编辑
#include <stdio.h>
#include <string.h>
#define fn "password.txt"//filename
int main()
{
char get[30], password[30];//password
char *p=password;
int file_exist();//检测密码文件是否存在
int feflag;//密码文件是否存在的标准,0存在;1不存在
void file_set(int,char*);//创建密码文件并输入与储存密码
void file_input(int,char*);//从文件中读取密码
feflag = file_exist();
file_set(feflag,p);
file_input(feflag,p);
printf("%s\n",get);//测试从密码文件中读入的字符串,调试成功后删除
do
{
printf("请输入密码:");
scanf("%s",get);//输入密码
if(strcmp(get,password)==0)//验证密码
{
break;
}
else
{
printf("密码错误\n");
}
}while(1);
return 0;
}
int file_exist()
{
FILE *fp;
if((fp = fopen(fn,"r"))== NULL)
{
printf("fp:%p\n",fp);
printf("文件不存在\n");
fclose(fp);
return 1;
}
fclose(fp);
return 0;
}
void file_set(int i,char *pw)
{
int a=0;
FILE *fp;
if(i == 1)
{
fp = fopen(fn,"w");
printf("请设置您的密码\n");
scanf("%s",pw);//创建密码
do
{
fputc(pw[a],fp);//将密码存入文件
a++;
}while( pw[a]!= '\0');
}
}
void file_input(int flag ,char *p)
{
FILE *fp;
int i=0;
char c;
if(flag == 0)
{
fp = fopen("password.txt","r");
while((c = fgetc(fp)) != EOF)
{
p = c;
++i;
}
}
}
尝试了用函数分开写,能正常运行了。 |
|