В моем коде я создаю 3 новых файла.
Если файл "users" не существует, я создаю файл с некоторой информацией для инициализации файла.
После этого я Если вы хотите сравнить строку пользователя с помощью функции fgets (), а затем сравнить строку с теми, которые есть в файле (пароль и идентификатор), вы можете увидеть struct: user в начале кода. Теперь, когда я использую «strcmp», он всегда дает мне «1».
enter code here
#define CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include <stdio.h>
#include <stdbool.h>
#include <time.h>
#include "doubly_list.h"
typedef struct user {
int SecurityLevel;
char ID[15];
char Password[15];
char FullName[20];
}user;
typedef struct items {
char movie_name[20];
char producer_name[20];
int release_date_year, release_date_month, release_date_day;
float rating;
int serial_number;
bool is_adult_video;
}items;
void main()
{
char id_input[15], password_input[15];
int day, month, year, hours, mins, SecurityLevel;
FILE* log;
log = fopen("log.txt", "a");
fclose(log);
FILE* users;
users = fopen("users.dat", "rb+");
user new_user;
if (users == NULL)
{
FILE* users;
users = fopen("users.dat", "ab+");
new_user.SecurityLevel = 3;
strcpy(&new_user.Password, "admin");
strcpy(&new_user.ID, "admin");
strcpy(&new_user.FullName, "System_Manager");
fwrite(&new_user, sizeof(new_user), 1, users);
fclose(users);
}
FILE* item;
item = fopen("users.dat", "ab+");
fclose(item);
printf("Enter ID: ");
fgets(id_input, 15, stdin);
flushall();
printf("Enter Password : ");
fgets(password_input, 15, stdin);
log = fopen("log.txt", "a+");
fprintf(log, "\nthe user entered the ID : %s", id_input);
fprintf(log, "the user entered the password : %s", password_input);
FILE* users_out= fopen("users.dat", "rb");
fread(&new_user, sizeof(user), 1, users_out);
int result= result = strcmp(password_input, new_user.Password);
printf("\n%d\n", result);
if (strcmp(password_input, new_user.Password)==0)
printf("\nLog in was successful.....\n\n");
else
printf("\nLog In was Unseccessful.....\n\n");
fclose(log);
fclose(users_out);
system("pause");
}