Abort Вызывается при использовании строк для чтения информации об альбоме из файла.

abort был вызван, когда я запускаю свой код, хотя он успешно собирается. Кто-нибудь может дать мне советы, как сделать мой код лучше, чтобы не вызывать abort?
Он ссылается на два текстовых файла, но вот мой код:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;
int main()
{
ifstream fin("Album Name1.txt");
string album_name;
string artist = album_name.substr(0, album_name.find("-"));
cout << "Artist : " << artist << endl;
string album = album_name.substr(album_name.find("-"), album_name.rfind("-"));
cout << " Album Title: " << album << endl;
string song = album_name.substr(album_name.length(), album_name.rfind("-"));
cout << " Song Title : " << song << endl;
string time = album_name.substr(album_name.find("2"), (album_name.find("2")));
string minutes = time.substr(0, 0);
string seconds = time.substr(1, 2);
string minutes_seconds = minutes + ":" + seconds;
cout << "Run Time: " << minutes_seconds << endl;
cout << "Copyright (c) Bruce Springsteen, 1984";
fin.close();
fin.clear();
ifstream ifin("Album Name2.txt");
string album2_name;
string artist2 = album2_name.substr(0, album2_name.find("-"));
cout << "Artist : " << artist2 << endl;
string album2 = album2_name.substr(album2_name.find("-"), album2_name.rfind("-"));
cout << " Album Title: " << album2 << endl;
string song2 = album2_name.substr(album2_name.length(), album2_name.rfind("-"));
cout << " Song Title : " << song2 << endl;
string time2 = album2_name.substr(album2_name.find("2"), (album2_name.find("2")));
string minutes2 = time2.substr(0, 0);
string seconds2 = time2.substr(1, 2);
string minutes_seconds2 = minutes2 + ":" + seconds2;
cout << "Run Time: " << minutes_seconds2 << endl;
cout << "Copyright (c) Maroon 5, 2004";
ifin.close();
return 0;
}

-2

Решение

Вы забыли установить или прочитать название альбома, поэтому весь алгоритм обрабатывает пустую строку.

Предполагая, что вы хотели прочитать имя альбома из входного файла, вы должны были написать:

ifstream fin("Album Name1.txt");
string album_name;
std::getline(fin,album_name);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector