I wrote a program that collects user data and saves it to a file. At the moment when he wants to view the file, the program loops and shows only the first record. I do not know what this error is caused.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
FILE *fptr;  
struct notification {
    char name[50];
    char lastname[50];
    char price[10];
    char descreption[100];
}notification;
void insertRecord()
{
    fptr=fopen("G:\\file.txt","a+");
    fflush(stdin);
    printf("Podaj imie: ");
    gets(notification.name);
    printf("Podaj nazwisko: ");
    gets(notification.lastname);
    printf("Podej cene: ");
    gets(notification.price);
    printf("Podaj opis usterki: ");
    gets(notification.descreption);
    strcat(notification.descreption,"\n");
    if(fwrite(¬ification,sizeof(notification),1,fptr) != 1)
    {
        perror("Blad: ");
    } else{
        printf("Dane dodane poprawnie\n");
    }
    fclose(fptr);
}
void readDatabase()
{
    struct notification *object2=malloc(sizeof(struct notification));
    fptr=fopen("G:\\file.txt","rb");
    fread(object2,sizeof(struct notification),1,fptr);
    while(!feof(fptr))
    {
        printf("Imie: %s\n", object2->name);
        printf("Nazwisko: %s\n", object2->lastname);
        printf("Cena: %s\n", object2->price);
        printf("Opis: %s\n", object2->descreption);
        printf("==========\n");
    }
    fclose(fptr);
}
int main() {
    int i,option=0,check=0;
    do{
        printf("1) Dodaj rekord do bazy \n");
        printf("2) Odczytaj rekordy z bazy \n");
        printf("0) Zakoncz program \n");
        scanf("%d", &option);
        switch (option)
        {
            case 1:
                insertRecord();
                break;
            case 2:
                readDatabase();
                break;
            default:
                break;
        }    
    }while(check == 0); //petla dziala dopóki zmienna check bedzie równa 0
}
EDIT:
Correct insertRecord function:
void insertRecord()
{
    fptr=fopen("G:\\file.txt","a+");
    fflush(stdin);
    struct notification *obj = malloc(sizeof(struct notification));
    printf("Podaj imie: ");
    gets(obj->name);
    printf("Podaj nazwisko: ");
    gets(obj->lastname);
    printf("Podej cene: ");
    gets(obj->price);
    printf("Podaj opis usterki: ");
    gets(obj->descreption);
    strcat(notification.descreption,"\n");
    if(fwrite(obj,sizeof(struct notification),1,fptr) != 1)
    {
        perror("Blad: ");
    } else{
        printf("Dane dodane poprawnie\n");
    }
    free(obj);
    fclose(fptr);
}
Now ALL display and insert OK, but in file.txt I see Chinese characters, why?
 
     
     
     
     
    