else if (a == 2)
{
ifstream fout;
fout.open(path);
if (!fout.is_open()) {
cout << "Ошибка открытия файла!";
}
else {
cout << "Введите нужную вам станцию: ";
string station;
cin >> station;
TrainInfo train_out;
while (fout.read((char*)&train_out, sizeof(TrainInfo)))
{
if (station == train_out.destination_station)
{
cout << "Номер поезда: " << train_out.number << endl;
cout << "Станция отправления: " << train_out.departure_station << endl;
cout << "Станция назначения: " << train_out.destination_station << endl;
cout << "Время отправления: " << train_out.departure_time << endl;
cout << "Время прибытия: " << train_out.arrival_time << endl;
cout << "Тип поезда: " << train_out.type << endl << endl;
}
}
}
fout.close();
Просто вылетает приложение при выборе второго пункта меню после ввода нужной станции. Что не так?(в С++ очень большой новичок) Знаю,что проблема в этой строчке while (fout.read((char*)&train_out, sizeof(TrainInfo))), но как ее исправить?
Ну нельзя читать/писать вот так -
fout.read((char*)&train_out, sizeof(TrainInfo))
что-то, кроме простейших структур! Вряд ли у вас TrainInfo - plain old data (POD). Там же наверняка что-то есть не совсем фундаментальное :)
Рассказывать, как конкретно исправить ситуацию - без знания, что и как у вас объявлено - не получится. Общая идея - ну вот тот же string - это класс, в объете которого указатель, а само содержимое - где-то в памяти.
Получается у вас примерно так - жена говорит собраться в отпуск и в машину в багажник сложить, ну, там, матрас надувной, палатку, мангал и шампуры - ну, в общем, барахло. Вы в багажник кладете бумажки с надписями "Матрас - на антресолях", "Палатка - на балконе" (ваши указатели) и т.д. Так вот сохраняете в багажник/файл...
По приезду на место читаете - вынимаете из багажника бумажки с надписями, где что лежит. Но хуже того, что шкаф теперь совсем другой, балкон тоже, так что втык от жены - это примерно и есть результат вот такого хранения и попытки раскрыть палатку, которой нет...
Поройтесь здесь, на сайте - тут эта тема возникала не раз.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости