C++ 将Struct用于mp3播放器模拟C++;(不需要播放mp3&x27;的仅显示列表)

C++ 将Struct用于mp3播放器模拟C++;(不需要播放mp3&x27;的仅显示列表),c++,struct,C++,Struct,我需要创建一个假的mp3播放器,它有一个带有六个选项的菜单屏幕((1)添加歌曲。(2)按标题排序。(3)按艺术家排序。(4)按长度排序。(5)打印播放列表。(6)退出)在我开始按艺术家、长度等排序歌曲之前,我需要能够使用结构输入歌曲。我从未使用过struct,也不确定它们如何使用向量,但我的代码如下。我有一个包含歌曲标题、艺术家和长度的结构,我相信我使用向量正确输入了信息,但在“song是用户定义的类型之前,我得到了错误预期的主表达式。你不能写这样的东西 coutSONG是用户定义的类型。你不能

我需要创建一个假的mp3播放器,它有一个带有六个选项的菜单屏幕((1)添加歌曲。(2)按标题排序。(3)按艺术家排序。(4)按长度排序。(5)打印播放列表。(6)退出)在我开始按艺术家、长度等排序歌曲之前,我需要能够使用结构输入歌曲。我从未使用过struct,也不确定它们如何使用向量,但我的代码如下。我有一个包含歌曲标题、艺术家和长度的结构,我相信我使用向量正确输入了信息,但在“
song
是用户定义的类型之前,我得到了错误预期的主表达式。你不能写这样的东西
cout
SONG
是用户定义的类型。你不能写这样的东西
cout谢谢你,所有帮助过你的人。这是我的最终代码。各方面都起作用

#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
struct song{
string title;
string artist;
double length;
};


void addsong(vector<song>&playlist, char ans, string x){
cout<<"You have chosen to add a song"<<endl;
int i=0;

do{
cin.ignore();
playlist.push_back(song());
cout<<"Please enter song title: ";
getline(cin,playlist[i].title);
cout<<"Please enter song artist: ";
getline(cin,playlist[i].artist);
cout<<"Please enter song length (in minutes): ";
cin>>playlist[i].length;
cout<<"Enter another? (y/n)"<<endl;
cin>>ans;
i++;
}while(ans!='n');
}
void displayPlaylist(vector<song>playlist){
for(int i=0;i<playlist.size();i++){
cout<<"Title: "<<playlist[i].title<<" | Artist: "<<playlist[i].artist<<" | Length: "<<playlist[i].length<<" minute(s)"<<endl;
}
}
bool titlesort(const song &a, const song &b){
    return a.title < b.title;
}
bool artistsort(const song &a, const song &b){
    return a.artist < b.artist;
}
bool lengthsort(const song &a, const song &b){
    return a.length < b.length;
}

int main(){
int i, num;
char ans, ans2;
string x;
vector<song>playlist;
struct song;
double temp;
do{cout<<"Hello, Welcome to Music Player.\nWould you like to:"<<endl;
cout<<"(1) Add a song.\n(2) Sort By Title.\n(3) Sort by artist.\n(4) Sort by length.\n(5) Print your playlist.\n(6) Exit."<<endl;
cin>>num;
if(num==1){
    addsong(playlist, ans, x);
}
else if(num==2){
    sort(playlist.begin(), playlist.end(), titlesort);
}
else if(num==3){
    sort(playlist.begin(), playlist.end(), artistsort);
}
else if(num==4){
    sort(playlist.begin(), playlist.end(), lengthsort);
}
else if(num==5){
    displayPlaylist(playlist);
    cout<<"Do you want to go to the main menu?";
    cin>>ans2;
}
else if(num==6){
return 0;
}
}while(ans2!='n');
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
结构歌曲{
字符串标题;
弦乐艺术家;
双倍长度;
};
void addsong(矢量和播放列表、字符ans、字符串x){

谢谢你们,所有帮助过我的人。这是我最后的代码。各方面都很有效

#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
struct song{
string title;
string artist;
double length;
};


void addsong(vector<song>&playlist, char ans, string x){
cout<<"You have chosen to add a song"<<endl;
int i=0;

do{
cin.ignore();
playlist.push_back(song());
cout<<"Please enter song title: ";
getline(cin,playlist[i].title);
cout<<"Please enter song artist: ";
getline(cin,playlist[i].artist);
cout<<"Please enter song length (in minutes): ";
cin>>playlist[i].length;
cout<<"Enter another? (y/n)"<<endl;
cin>>ans;
i++;
}while(ans!='n');
}
void displayPlaylist(vector<song>playlist){
for(int i=0;i<playlist.size();i++){
cout<<"Title: "<<playlist[i].title<<" | Artist: "<<playlist[i].artist<<" | Length: "<<playlist[i].length<<" minute(s)"<<endl;
}
}
bool titlesort(const song &a, const song &b){
    return a.title < b.title;
}
bool artistsort(const song &a, const song &b){
    return a.artist < b.artist;
}
bool lengthsort(const song &a, const song &b){
    return a.length < b.length;
}

int main(){
int i, num;
char ans, ans2;
string x;
vector<song>playlist;
struct song;
double temp;
do{cout<<"Hello, Welcome to Music Player.\nWould you like to:"<<endl;
cout<<"(1) Add a song.\n(2) Sort By Title.\n(3) Sort by artist.\n(4) Sort by length.\n(5) Print your playlist.\n(6) Exit."<<endl;
cin>>num;
if(num==1){
    addsong(playlist, ans, x);
}
else if(num==2){
    sort(playlist.begin(), playlist.end(), titlesort);
}
else if(num==3){
    sort(playlist.begin(), playlist.end(), artistsort);
}
else if(num==4){
    sort(playlist.begin(), playlist.end(), lengthsort);
}
else if(num==5){
    displayPlaylist(playlist);
    cout<<"Do you want to go to the main menu?";
    cin>>ans2;
}
else if(num==6){
return 0;
}
}while(ans2!='n');
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
结构歌曲{
字符串标题;
弦乐艺术家;
双倍长度;
};
void addsong(矢量和播放列表、字符ans、字符串x){

你的
for(int i=0;i
coutpredent你的代码谢谢你的解释,现在有意义了。你的
for(int i=0;i
coutpredent你的代码谢谢你的解释,现在有意义了。我的疏忽,刚刚补充:)谢谢!我更改了很多代码,现在只需计算排序!我的疏忽,只是添加:)谢谢!我更改了很多代码,现在只需计算排序!