Добавление структуры и её запись в бинарный файл

Написал пару функций. Функция Adding() добавляет структуру в конец массива структур. Когда я вызывают эту функцию, происходит запрос на ввод информации для элементов структуры в консоли. Всё бы ничего, но почему-то консоль не даёт мне ввести последнее значение (значение для элемента pass_number), хотя всё написано также. Делал уже подобное, но там с таким не сталкивался. В чём же проблема?

Вторая проблема заключается в записи структуры в бинарный файл. Я открываю файл в бинарном режиме и режиме для удаления всего содержимого, значит изначально файл пуст. Функция записи в файл вызывается внутри функции Adding(), поэтому то, что я ввожу в консоли, должно записаться в файл в виде, который понятен машине. Но посмотрев содержимое файла, я засомневался в том, что всё сделано верно, ибо там находятся значения, которые я ввёл в консоли, а между ними располагается различное количество букв "Н". Вообще не понимаю что не так.

Смит НННННННННННННННДжон НННННННННННННННАльфредович НННННННН+375294678290 ННННННМосква НННННННННННННШереметьево НННННННН4 BMW НННННННННННННННН4559 НННННННННННННННКН-4 ННННННННННННННН

#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;

struct Car_owner {
    char surname[20];
    char name[20];
    char otchestvo[20];
    char telephone[20];
    struct Adress {
        char city[20];
        char street[20];
        int house;
        int flat;
    } adress;
    char kind[20];
    char car_number[20];
    char pass_number[20];
};

int menu();
void CreatingFile(Car_owner* mass, int N, int &n);
void Adding(Car_owner* mass, int N, int &n);
void Output(Car_owner* mass, int N, int &n);
void Removing(Car_owner* mass, int N, int &n);
void Sorting(Car_owner* mass, int N, int &n);
void Exit(Car_owner* mass, int N, int &n);

void(*masf[])(Car_owner* mass, int N, int &n) = { CreatingFile, Adding, Output, Removing, Sorting, Exit };

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    int N = 8, n = 0;
    Car_owner* mass = new Car_owner[N];

    (*masf[menu()])(mass, N, n);

    system("pause");
    return 0;
}

int menu() {
    cout << "Выберите процедуру:" << endl;
    cout << "1)Создание файла" << endl;
    cout << "2)Добавление элемента в конец файла" << endl;
    cout << "3)Вывод содержимого файла на экран" << endl;
    cout << "4)Удаление элемента из файла" << endl;
    cout << "5)Упорядочивание элементов в файле по выбранному признаку" << endl;
    cout << "6)Выход" << endl;
    int choice;
    cin >> choice;
    return choice - 1;
}

void CreatingFile(Car_owner* mass, int N, int &n) {
    ofstream file("File.txt", ios_base::binary | ios_base::trunc);
    if (menu() != 0) {
        for (int i = 0; i < n; i++) {
            file.write((char*)&mass[i], sizeof(mass[i]));
        }
    }
    file.close();
}

void Adding(Car_owner* mass, int N, int &n) {
    cout << "Введите фамилию владельца машины:" << endl;
    cin >> mass[n].surname;
    cout << "Введите имя владельца машины:" << endl;
    cin >> mass[n].name;
    cout << "Введите отчество владельца машины:" << endl;
    cin >> mass[n].otchestvo;
    cout << "Введите телефон владельца машины:" << endl;
    cin >> mass[n].telephone;
    cout << "Введите город владельца машины:" << endl;
    cin >> mass[n].adress.city;
    cout << "Введите название улицы владельца машины:" << endl;
    cin >> mass[n].adress.street;
    cout << "Введите номер дома владельца машины:" << endl;
    cin >> mass[n].adress.house;
    cout << "Введите номер квартиры владельца машины:" << endl;
    cin >> mass[n].adress.flat;
    cout << "Введите марку машины владельца:" << endl;
    cin >> mass[n].kind;
    cout << "Введите номер машины владельца:" << endl;
    cin >> mass[n].car_number;
    cout << "Введите номер техпаспорта машины владельца:" << endl;
    cin >> mass[n].pass_number;
    n++;
    CreatingFile(mass, N, n);

}

void Output(Car_owner* mass, int N, int &n) {

}

void Removing(Car_owner* mass, int N, int &n) {

}

void Sorting(Car_owner* mass, int N, int &n) {

}

void Exit(Car_owner* mass, int N, int &n) {
    exit(0);
}

Ответы (0 шт):