Ошибка чтения из файла в char*. C++

288
03 октября 2017, 05:59

1. Есть файл с данными:

  • 1 Пароход1 200 Красный 2
  • 2 Парусник1 150 Типтруб-2 4
  • 3 Корвет1 120 Типтруб-1 3 Зелёный 20.

Первое - код для понимания, какой объект я буду инициализировать, остальные - поля классов.

   while (!fin.eof())
    {
        fin >> key;
        try{
            if (key == 1)
            {
                fin >> name >> speed >> color >> counttrumpet;
                Steamship *ss = new Steamship(name, speed, color, counttrumpet);
                l.push_back(ss);
            }
            if (key == 2)
            {
                fin >> name >> speed >> typesail >> countsail;
                Sailingship *ss = new Sailingship(name, speed, typesail, countsail);
                l.push_back(ss);
            }
            if (key == 3)
            {
                fin >> name >> speed >> typesail >> countsail >> colorsail >> age;
                Corvette *ct = new Corvette(name, speed, typesail, countsail, colorsail, age);
                l.push_back(ct);
            }
        }

При считывании name вылетает следующая ошибка:

Answer 1

В целом, ошибка была весьма глупая.

char* colorsail="", *typesail="", *color="", *name="";

Когда нужно было инициализировать их так.

 char* colorsail = new char[20], *typesail = new char[20], *color = new 
 char[20], *name = new char[20];
READ ALSO
Создание компаратора для std::list::sort с++

Создание компаратора для std::list::sort с++

У меня задание написать Отсортировать числовую последовательность в порядке возрастания количества делителей её элементов, используя...

254
jquery вытащить id из ссылки

jquery вытащить id из ссылки

Как можно выдернуть id в моем случаи 4681?

289