Вы должны использовать файлы для этого? Вы всегда можете использовать std :: map и сохранить в качестве ключа авиакомпании__
Я бы также не использовал глобальную структуру и класс.
Редактировать: k, у меня проблема, и я обнаружил, что проблема в 1050. Я могу перенести это на более раннюю запись, и это тоже на этом остановится. Я думаю, что проблема в том, что 1050 каким-то образом вызывает конец файла. Попробуйте следующие строки замены, чтобы открыть файл в двоичном виде:
fout.open("testdata.dat",ios::app | ios::binary);
fin.open("testdata.dat",ios::in | ios::binary);
вместо:
fout.open("testdata.dat",ios::app);
fin.open("testdata.dat",ios::in);
Редактировать: только что проверил и 1050 преобразуется в 041A, что переводится в символы Конец передачи, а затем .... SUB или EOF. Я думаю, что это ваша проблема, и в двоичном режиме это больше не должно быть проблемой.