我正在用C做注册码,基本上可以输入多个账户. 现在,我想要的是通过登录函数访问该特定帐户,其中(Pass == LogIn Pass).
尽管我的代码已经可以访问该特定帐户(请参阅Inquiry()函数),但我的问题是,当我try 使用该特定帐户的密码确认LogIn_Pass时,即使用户输入正确,它也总是返回"帐户未找到".
我已经判断过Inquiry()是否有效,并且它基于LogIn()中输入的账号.
我的问题是LogIn_Pass无法与从Registry输入的密码进行比较(accounts[i][4]).
请参阅登录功能."欢迎"声明永远不会发表.我如何才能成功比较它们?
我是C新手,我被难住了.请帮忙.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char accounts[100][4][100];
int num_accounts = 0, confirm_pass, login_pass;
int acc_num;
int login_pass;
// Function declarations
void Registration();
void Inquiry();
void LogIn();
//Main Function
int main() {
int n;
Registration();
LogIn();
while (1) {
printf("\n1. Inquiry\n2. Exit\n");
scanf("%d", &n);
switch (n) {
case 1:
Inquiry();
break;
case 2:
printf("Exiting...\n");
return 0;
default:
printf("Invalid choice!\n");
break;
}
}
return 0;
}
//Registration Function
void Registration() {
printf("Enter the number of accounts to register: ");
scanf("%d", &num_accounts);
for (int i = 0; i < num_accounts; i++) {
getchar();
printf("\nRegistration for Account %d\n", i + 1);
printf("____________________________\n");
printf("1. Account name: ");
fgets(accounts[i][0], sizeof(accounts[i][0]), stdin);
printf("2. Account number: ");
fgets(accounts[i][1], sizeof(accounts[i][1]), stdin);
printf("3. Address: ");
fgets(accounts[i][2], sizeof(accounts[i][2]), stdin);
printf("4. Mobile number: ");
fgets(accounts[i][3], sizeof(accounts[i][3]), stdin);
// Prompt for password creation
do {
printf("\n\nCreate Password: ");
fgets(accounts[i][4], sizeof(accounts[i][4]), stdin);
printf("Confirm Password: ");
fgets(accounts[i][5], sizeof(accounts[i][5]), stdin);
if (strcmp(accounts[i][4], accounts[i][5]) == 0) {
break;
} else {
printf("Password does not match!\n");
}
} while (1);
}
}
//LogIn Function
void LogIn() {
printf("\nLog In: \n");
printf("____________________________\n");
printf("Account number: ");
scanf("%d", &acc_num);
printf("Password: ");
scanf("%d", &login_pass);
// Find the account with the matching account number
int found = 0;
for (int i = 0; i < num_accounts; i++) {
if (acc_num == atoi(accounts[i][1]) && login_pass == atoi(accounts[i][4])) {
printf("\nWelcome!\n");
found = 1;
break;
}
}
if (!found) {
printf("\nAccount not found!\n");
}
}
//Inquiry Function
void Inquiry() {
for (int i = 0; i < num_accounts; i++) {
if (acc_num == atoi(accounts[i][1])) {
printf("Account name: %s", accounts[i][0]);
printf("Account number: %s", accounts[i][1]);
printf("Address: %s", accounts[i][2]);
printf("Mobile number: %s", accounts[i][3]);
break;
}
}
}