重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
成都创新互联是一家专注于网站设计、做网站与策划设计,湄潭网站建设哪家好?成都创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:湄潭等地区。湄潭做网站价格咨询:18980820575
#include string.h
#include stdlib.h
#include time.h
/*随机码产生函数*/
void RandomCode (char Rcode[])
{
int i;
srand ((unsigned int)time(NULL));
for (i = 0; i 3; ++i)
Rcode[i] = rand()%10 + '0';
Rcode[i] = '\0';
}
/*登陆函数,判断信息是否匹配,若匹配返回1,否则返回0*/
int LandedApp (char *password[], char Rcode[])
{
char name[10] = {0};
char pword[10] = {0};
char rcode[4] = {0};
printf ("用户名 : ");
gets (name);
printf ("密码 : ");
gets (pword);
printf ("随机码 : ");
gets (rcode);
if (strcmp (name, password[0]) != 0 || strcmp (pword, password[1]) != 0 || strcmp (rcode, Rcode) != 0)
return 0;
else
return 1;
}
int main ()
{
char * password[2] = {"admin", "admin123"}; //用户名和密码
char rc[4] = {0}; //随机码
int count = 3; //可输入次数
puts ("请输入用户名,密码和随机码:");
while (count)
{
RandomCode (rc);
printf ("随机码 : %s\n", rc);
if (LandedApp(password, rc) != 0)
break;
--count;
if (count != 0)
puts ("错误的用户名或密码或随机码,请重新输入: ");
}
if (count != 0)
puts ("\n成功登陆!");
else
puts ("\n登录失败 !");
return 0;
}
代码如下:
#includestdio.h
#pragma warning(disable:4996)
#includestring.h
int main()
{
int i = 0;
char password[10] = { 0 };
printf("请输入密码:");
while (i 3)
{
scanf("%s", password);
printf("\n");
if (strcmp(password, "972816") == 0)
{
printf("登录成功\n");
break;
}
else
{
i++;
if (i != 3)
printf("再输入一次");
}
}
if (i == 3)
printf("密码错误三次退出登录界面\n");
system("pause");
return 0;
扩展资料:
#include后面有两种方式,;和""前者先在标准库中查找,查找不到在path中查找。后者为文件路径,若直接是文件名则在项目根目录下查找。
引用方法:#include stdio.h
注意事项:在TC2.0中,允许不引用此头文件而直接调用其中的函数,但这种做法是不标准的。也不建议这样做。以避免出现在其他IDE中无法编译或执行的问题。
参考资料来源:百度百科—include
参考资料来源:百度百科—stdio.h
登录包括检查数据文件,检测输入格式,检查数据重复性,验证用户名密码。
根据读取写入追加数据的不同要求,fopen选项不同参数,比如"r","w","a"。注意每次用完后用fclose函数关闭数据流。
下面是演示代码:(文件不存在自动创建,登录失败提示注册,输入验证,你自己写,比如:用户名包含几字母数字等)。
#include stdio.h
#include string.h
#define UFPATH "C:\\user.data" //文件路径
#define SMAX 20
typedef struct USER
{
char uName[SMAX];
char pwd[SMAX];
}UR;
UR *logon(char *uName,char *pwd);
int main()
{
UR *ur=NULL;
char uName[SMAX],pwd[SMAX];
printf("请输入用户名及密码:\n");
scanf("%s",uName);
scanf("%s",pwd);
if((ur=logon(uName,pwd))==NULL)
printf("登陆失败");
else
printf("欢迎登录!%s\n",ur-uName);
return 0;
}
UR *logon(char *uName,char *pwd)
{
int isExcept=1;//标识变量,1:该用户不存在。0:用户名存在
FILE *fp=NULL;
static UR ur;
char c[2];
if((fp=fopen(UFPATH,"r"))==NULL)
{
printf("该路径未发现记录文件,新建文件!\n");
if((fp=fopen(UFPATH,"wt"))==NULL)
{
printf("异常!新建文件失败!\n");
return NULL;
}
isExcept=1;
}
else
{
while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)
{
if(strcmp(ur.uName,uName)==0 strcmp(ur.pwd,pwd)==0)
{
printf("身份验证通过!\n");
fclose(fp);
return ur;
}
}
printf("用户密码不正确,或用户不存在!\n");
fclose(fp);
isExcept=1;
}
if(isExcept==1)
{
printf("是否注册用户?(Y/N)\n");
scanf("%s",c);
if(c[0]=='N')
return NULL;
if(c[0]=='Y')
{
while(isExcept)
{
printf("请输入要注册的用户名及密码:\n");
scanf("%s",uName);
scanf("%s",pwd);//输入验证在这里添加!!!!!!!!!
//------------验证新建的用户名是否重名-------
if((fp=fopen(UFPATH,"r"))==NULL)
{
printf("异常!,文件打开失败!\n");
return NULL;
}
isExcept=0;
while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)
{
if(strcmp(ur.uName,uName)==0)
{
printf("用户名已存在,请重新输入!\n\n");
fclose(fp);
isExcept=1;
break;
}
}
fclose(fp);
//-------------------------------------------------------
}
if((fp=fopen(UFPATH,"a"))==NULL)
{
printf("异常!,文件打开失败!\n");
return NULL;
}
fprintf(fp,"%s %s%s",uName,pwd,"\n");
printf("用户注册成功!\n");
strcpy(ur.uName,uName);
strcpy(ur.pwd,pwd);
}
}
fclose(fp);
return ur;
}
//ps:代码是按照你问题写成一个登录函数,但在一个项目中,对文件的读写改,应写成独立函数调用。其它函数调用这些函数。