Что не так с фредом в этой программе?

Я учусь на среднем C. Я пытаюсь создать программу управления банком, но сначала мне нужно создать программу входа в систему, поэтому я создал одну из следующих. Как я недавно узнал о файловом вводе / выводе в C, я не очень разбираюсь в fread и fwrite. У меня есть файл (data.txt), формат которого, как показано ниже.

user1 1124

user2 3215

user3 5431

В следующей программе я попросил пользователя ввести имя пользователя и пин-код (4-значный пароль) и скопировать данные файла в структуру, а затем сравнить эти два для проверки информации.

Что не так с моей программой и как заставить фред работать правильно. И форматирование в файле data.txt все в порядке, или я должен изменить его.

Заранее спасибо...

#include<stdio.h>
#include<ctype.h>
#include<string.h>

struct user_account    {
    char u_name[30];
    int u_pin;
} log_in;



    int login()
{
    int start;
    int i, n;
    int t_pin[4];       // TEMPORARY INT PIN for storing pin inputed by user
    char t_name[30];    //  TEMPORARY STRING for storing name inputed by user

    FILE *fp;
    fp = fopen("data.txt","rb");        // Opening record file

    if(fp == NULL)
    {
    puts("Unable to open file!");
    return 1;
    }

    start :  {
        printf("User Name : ");
        scanf("%s",&t_name);
        printf("Pin Code  : ");

        for(i = 0; i < 4; i++)  {       // This loop is for hiding input pin
            n = getch();

            if(isdigit(n))  {
                t_pin[i] = n;
                printf("*");    }
            else    {
                printf("\b");
                i--;
            }
        }

        fread(&log_in,sizeof(log_in),1,fp);

        // Comparing user name and pin with info in the structure copied from the file

        if(strcmp(log_in.u_name, t_name) == 0 && log_in.u_pin == t_pin)
            puts("Login successful! Welcome User");
        else    {
            printf("\nIncorrect Information!\n");
            printf("Press any key to log in again...");
            getch();
            system("cls");
            goto start; }
        }
    }

    int main()
    {
    int login();
        return 0;
    }

Ответы на вопрос(3)

Ваш ответ на вопрос