Не работает цикл с строками
Делаю курсовую по касе автовоказала, и все функции работают кроме DateEntry. Когда вызываю функцию через switch запускается цикл для заполнения массива, но массив прерывается в середине, и не знаю как решить эту проблему.
Сам код:
Functions.cpp
void DataEntry(Date* (&d), int& n){
cout << "Введiть скiльки маршутiв ви хочете добавити: ";
cin >> n;
d = new Date[n];
int choose_m;
for (int i = 0; i < n; i++) {
cout << "Введiть iнформацiю про маршут:" << endl;
cout << "Номер маршуту: ";
cin >> d[i]._trans.num_t;
cout << "Пункт Призначення: ";
cin >> d[i]._trans.destination;
cout << "Дистанцiя: ";
cin >> d[i]._trans.distance;
cout << "Мiсто виЇзду: ";
cin >> d[i]._trans.city;
cout << "Введiть iнформацiю про бiлет: " << endl;
cout << "Номер бiлету: ";
cin >> d[i]._tick.ID_tick;
cout << "Мiсце продажi: ";
cin >> d[i]._tick.place;
cout << "Цiна: ";
cin >> d[i]._tick.price;
cout << "Введiть iмя Диспетчера: ";
cin >> d[i]._dis.D_name;
cout << "Водiй: " << endl;
cout << "Введiть iмя водiя: ";
cin >> d[i]._driv.d_name;
cout << "Номер телефону: ";
cin >> d[i]._driv.num_phone;
cout << "Автобус: " << endl;
cout << "Номернi знаки автобуса: ";
cin >> d[i]._b.num_bus;
cout << "Модель: ";
cout << "[0] - BMW" << endl;
cout << "[1] - Mercedes" << endl;
cout << "[2] - Hyundai" << endl;
cin >> choose_m;
switch (choose_m)
{
case 0: d[i]._b.model = "BMW"; break;
case 1: d[i]._b.model = "Mercedes"; break;
case 2: d[i]._b.model = "Hyundai"; break;
}
cout << "Колiр автобуса: ";
cin >> d[i]._b.color;
cout << "_______________________________________" << endl;
}
}
Functions.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
struct Transportation // Маршут
{
int num_t;
string destination;
int distance;
int city;
};
struct Tickets // Бiлет
{
int ID_tick;
string place;
double price;
};
struct Dispatcher // Диспетчер
{
string D_name;
};
struct Driver // Водiй
{
string d_name;
int num_phone;
};
struct Bus {
int num_bus;
string model;
string color;
};
struct Date {
Transportation _trans;
Tickets _tick;
Dispatcher _dis;
Driver _driv;
Bus _b;
};
void DataEntry(Date* (&d), int& n);
Source.cpp
#include "Functions.h"
int main()
{
setlocale(LC_ALL, "Russian");
int amount = 0;
Date* d = new Date[amount];
DataEntry(d, amount);
}
Ответы (2 шт):
Автор решения: Lem0nti
→ Ссылка
Необходимо убрать последний break.:
case 2: d[i]._b.model = "Hyundai"; break;
->
case 2: d[i]._b.model = "Hyundai";
Автор решения: Artyomka
→ Ссылка
Исправьте поле структуры.
struct Transportation // Маршут
{
int num_t;
string destination;
int distance;
//int city; - Ошибка!
string сity;
};
