По первому вопросу: после getline остается указатель перевода на новую строку, что говорит о окончании ввода.
После ввода текста
cin.getline(mas[i].fi, 50);
Дописывать
cin.sync();
И проблем нету.
По поводу define он тупо заменяет все N на 15 - типа не учитывается, а const int это переменная определенного типа.
ИМХО, const int правильнее
1
|