gpt4 book ai didi

c - 如果条件是导致其他部分的调用方法

转载 作者:行者123 更新时间:2023-11-30 21:08:02 25 4
gpt4 key购买 nike

当我尝试从if条件的Login方法中调用ShowMeMine(struct user_node userob)时,即使密码正确,也是说我的密码错误。如果我从if condition.enter行中删除该行,则表示登录成功
我将此文件另存为.h扩展名。

#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);

}

最佳答案

您的代码不起作用的原因是,您忘记了终止读取的密码:

    while((ch=getch())!='.'){
password[pass_count++]=ch;
printf("*");
}
password[pass_count]= '\0';


附言:我不明白为什么给函数一个不使用的结构(按值),也不返回一个值。任务 userob=userob;也很有趣。最后,您必须先关闭文件,然后再返回。

关于c - 如果条件是导致其他部分的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40587974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com