Ошибка C ++ при создании вектора с использованием структур

0

Я пытаюсь создать программу c++, которая использует текстовый файл в качестве базы данных. Для этого он сохраняет строки в текстовом файле (представляющие песни) как "Revolution Diplo Revolution 320 12". Когда это предложение разбивается (вся другая дилемма), значения данных - это имя, исполнитель, альбом, килобайт/секунду, и размер в мегабайтах, соответственно.

Я получаю следующие ошибки:

  1. 'main() :: song использует локальный тип main() :: song,

  2. Попытка создать экземпляр класса шаблона std :: allocator,

  3. Параметр аргумента 2 недействителен, и

  4. Функциональное определение здесь не допускается до '{токена

И я не могу понять, как это работает вообще.

struct song{
    string name;
    string artist;
    string album;
    string kbs;
    string size;
}; 

//Declare our function that will search
vector<song> loadStructsInData(){ //THIS LINE IS WHERE THE ERROR ARISES
    /* this part just reads a file and interprets each line as structs, like a database */

    return songs;
    cout<<"All done!"<<endl<<endl;
}

И все это в функции main().

  • 3
    main()::song - похоже, вы объявляете все в main() . Не делай этого.
Теги:
string
struct
vector

1 ответ

0

Вы должны объявить свою структуру в глобальной (или классе, но не в функции) области, чтобы использовать ее в контейнере STL.

  • 0
    Итак, я бы просто объявил это вне основного? (Я действительно новичок в C ++, хотя спасибо!)
  • 1
    @Gabriel. Да, объявите вашу структуру вне вашей основной функции. Кроме того, вы возвращаетесь перед cout , поэтому вы никогда не достигнете своего заявления cout .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню