używając fwrite () do zapisania struktury do pliku

Mam następujący program:

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

#define MAXLEN 100

typedef struct {int key; char data[MAXLEN];} record;

main(int argc, char *argv[])
{
    int n, i;
    record x;
    FILE *fp;
    fp = fopen(argv[1], "w+");
    printf("How many records will be entered? \n");
    scanf("%d", &n);
    for (i=0; i<n; i++)
    {
        printf("Enter record: \n");
        scanf("%d", &x.key);
        scanf("%s", &x.data);
        fwrite(&x, sizeof(record), 1, fp);
    }
}

To, co robię, to tworzenie rekordów z danych wejściowych użytkownika, a następnie zapisywanie tych „rekordów” w pliku. Jednak gdy używam fwrite (), plik, który jest tworzony, ma wiele dziwnych znaków zapisanych w nim, zamiast po prostu mieć każdy rekord z jego kluczem i danymi. Czy ktoś może mi powiedzieć, dlaczego pisze wszystkie te dziwne postacie?

questionAnswers(3)

yourAnswerToTheQuestion