c语言登录
① c语言 商品销售系统登入界面该怎么写
登录包括检查数据文件,检测输入格式,检查数据重复性,验证用户名密码。
根据读取写入追加数据的不同要求,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("请输入用户名及密码: ");
scanf("%s",uName);
scanf("%s",pwd);
if((ur=logon(uName,pwd))==NULL)
printf("登陆失败");
else
printf("欢迎登录!%s ",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("该路径未发现记录文件,新建文件! ");
if((fp=fopen(UFPATH,"wt"))==NULL)
{
printf("异常!新建文件失败! ");
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("身份验证通过! ");
fclose(fp);
return &ur;
}
}
printf("用户密码不正确,或用户不存在! ");
fclose(fp);
isExcept=1;
}
if(isExcept==1)
{
printf("是否注册用户?(Y/N) ");
scanf("%s",c);
if(c[0]=='N')
return NULL;
if(c[0]=='Y')
{
while(isExcept)
{
printf("请输入要注册的用户名及密码: ");
scanf("%s",uName);
scanf("%s",pwd);//输入验证在这里添加!!!!!!!!!
//------------验证新建的用户名是否重名-------
if((fp=fopen(UFPATH,"r"))==NULL)
{
printf("异常!,文件打开失败! ");
return NULL;
}
isExcept=0;
while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)
{
if(strcmp(ur.uName,uName)==0)
{
printf("用户名已存在,请重新输入! ");
fclose(fp);
isExcept=1;
break;
}
}
fclose(fp);
//-------------------------------------------------------
}
if((fp=fopen(UFPATH,"a"))==NULL)
{
printf("异常!,文件打开失败! ");
return NULL;
}
fprintf(fp,"%s %s%s",uName,pwd," ");
printf("用户注册成功! ");
strcpy(ur.uName,uName);
strcpy(ur.pwd,pwd);
}
}
fclose(fp);
return &ur;
}
//ps:代码是按照你问题写成一个登录函数,但在一个项目中,对文件的读写改,应写成独立函数调用。其它函数调用这些函数。
② C语言实现登录失败三次必须等待一段时间后再登录(如:10秒钟)
C99下编译运行!
#include <stdio.h>
#include <string.h>
#include <time.h>
// Pauses for a specified number of milliseconds.
void do_sleep(clock_t wait) {
clock_t goal;
goal = wait + clock();
while (goal > clock());
}
// correct username and password
const char* u = "admin";
const char* p = "123456";
int main(void)
{
int i = 0;
while (1) {
printf("Login user:");
char user[255] = { 0 };
gets(user);
char pwd[255] = { 0 };
printf("Login password:");
gets(pwd);
// match
if (0 == strcmp(user, u) && 0 == strcmp(pwd, p)) break;
if (++i >= 3) {
puts("Please retry after 10 seconds");
do_sleep((clock_t)10 * CLOCKS_PER_SEC);
i = 0;
}
}
puts("Login success");
return 0;
}
③ c语言写登录界面 账号密码登录错误三次 管理员登录 员工登录两个
#include<stdio.h>
#include<stdlib.h>
#defineMAXL100
#defineMAX_ERROR_TIME3
interrorTime=0;
intgetLen(chars[]){
intl=0;
for(l=0;s[l]!='
