从if codition调用方法导致else部分
当我试图从if条件的Login方法调用ShowMeMine(struct user_node userob)时,即使密码是正确的,它也会告诉我错误的passwrod。如果我从if条件中删除该行,则表示登录成功。请在此处输入代码 我正在将此文件保存为.h扩展名从if codition调用方法导致else部分,c,C,当我试图从if条件的Login方法调用ShowMeMine(struct user_node userob)时,即使密码是正确的,它也会告诉我错误的passwrod。如果我从if条件中删除该行,则表示登录成功。请在此处输入代码 我正在将此文件保存为.h扩展名 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> struct user_node{
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct user_node{
char username[20];
char password[100];
char address[200];
int age;
int unique_id; //It will help in connecting user_node and his bill
};
struct bill{
long user_bill_no;
int show_this_bill;
long meter_no;
double total_amount;
int unique_id;
};
//viewing specific person
void ShowMeMine(struct user_node userob){
printf("");
}
//Login authentication check
void Login(struct user_node userob){
FILE *fpread;
fpread=fopen("userdata.DAT","rb+");
char key[100];
char user_name[40],password[100];
char choice,ch;
int x;
int pass_count=0;
printf("Enter your name");
gets(user_name);
while((ch=getch())!='.'){
password[pass_count++]=ch;
printf("*");
}
while(fread(&userob,sizeof(userob),1,fpread)==1){
if(stricmp(user_name,userob.username)==0){
strcpy(key,userob.password);
userob=userob;
break;
}
}
if(strcmp(key,password)==0){
printf("Sucessfully Logged In");
ShowMeMine(userob);
}
else printf("Login Unsuccessful ");
printf("%d",x);
}
#包括
#包括
#包括
#包括
结构用户节点{
字符用户名[20];
字符密码[100];
字符地址[200];
智力年龄;
int unique_id;//它将有助于连接用户_节点及其账单
};
结构汇票{
长用户账单号;
int显示本账单;
长米诺;
两倍的总金额;
int-unique_-id;
};
//查看特定的人
void ShowMeMine(结构用户\节点用户OB){
printf(“”);
}
//登录验证检查
无效登录(结构用户\节点用户OB){
文件*fpread;
fpread=fopen(“userdata.DAT”,“rb+”);
字符键[100];
字符用户名[40],密码[100];
字符选择,ch;
int x;
int pass_count=0;
printf(“输入您的姓名”);
获取(用户名);
而((ch=getch())!='。){
密码[pass_count++]=ch;
printf(“*”);
}
while(fread(&userob,sizeof(userob),1,fpread)==1){
if(stricmp(用户名,userob.username)==0){
strcpy(key,userob.password);
userob=userob;
打破
}
}
如果(strcmp(密钥、密码)==0){
printf(“成功登录”);
ShowMeMine(userob);
}
else printf(“登录失败”);
printf(“%d”,x);
}
您的代码不起作用的原因是您忘记终止密码读取:
while((ch=getch())!='.'){
password[pass_count++]=ch;
printf("*");
}
password[pass_count]= '\0';
附言:我不明白为什么函数被赋予了一个你不使用的结构(按值),也没有返回值给它。分配
userob=userob代码>也很有趣。最后,您必须在返回之前关闭该文件。。请改用。请从代码中删除粗鲁/辱骂性的评论(打印语句),这对你来说可能很有趣,但是,很多人会觉得这是不尊重。对此非常抱歉。这只是一个错误@这只是个错误,谢谢。下次,请小心,收回自定义标志。