C++ 使用字符串从文件读取相册信息时调用Abort

C++ 使用字符串从文件读取相册信息时调用Abort,c++,string,abort,C++,String,Abort,在运行代码时调用了abort,尽管它已成功生成。有谁能给我一些建议,让我的代码更好地运行,这样就不会调用abort了? 它引用了两个文本文件,但我的代码如下: #include <iostream> #include <string> #include <fstream> using namespace std; int main() { ifstream fin("Album Name1.txt"); string album_name;

在运行代码时调用了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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
ifstream fin(“唱片集名称1.txt”);
字符串相册名称;
string artist=album\u name.substr(0,album\u name.find(“-”);

cout您忘记设置或读取唱片集名称,因此整个算法都在处理一个空字符串

假设您打算从输入文件中读取唱片集名称,您应该写:

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

请不要在并没有上下文的情况下转储整个代码列表。在请求帮助之前,请将代码编辑到a。若您能告诉我们程序在正常工作时应该做什么,可能会有所帮助。此外,请提供一个输入文件结构的示例。最后,仅通过查看您的代码,它看起来不像de>ifstreams
正在使用中。签出tipsIt应该从文本文件中读取有关艺术家的专辑详细信息,然后在cout中列出。