高分急求c++问题解决!

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:45:43
急求解答!
现有一完整c++程序如下,它可以自动read一个名为music.txt的文件(内容包含62首歌的list,各式都是“作者,歌名,时间,”例如:“Alison Moyet,All Cried Out,410,”可是现在输出结果与要求有出入,应该如何改正?
#include <iostream>
#include <cstdlib>
#include <string>
#include <ctime>
#include <vector>
#include <fstream.h>
using namespace std;

class Song {
public:
Song():artist(""), title(""), duration(0) { }
Song(string sin, string son, int dur):
artist(sin), title(son), duration(dur) { }
int getDuration() const;
friend ostream& operator << (ostream& out, const Song& song);
private:
string artist;
string title;
int duration;
};

int Song::getDuration() const
{
return duration;
}

ostream& operator << (ostream& out, const Song& song)
{
out << song.artist << ", " << song.title << ", "
<< song.du

1. 歌名和歌手名
void pushback(vector<Song>& list)
{
char a[40], t[40], d[10], line[100];
ifstream fin( "music.txt" );
int i, j;
for(; !fin.eof() ; )
{
i = 0;
fin.getline(line, 100);
if(line[i] == '\0')
break;
for(j = 0; line[i] != ',' ; )
{
a[j++] = line[i++];
}
a[j] = '\0';
i++;
//i++;
for(j = 0 ; line[i] != ',' ;)
t[j++] = line[i++];
t[j] = '\0';
i++;
//i++;

2. 歌曲输出格式
ostream& operator << (ostream& out, const Song& song)
{
out << song.title << " by " << song.artist;
return out;
}

3. 随机数
void playlist(vector<Song>& list)
{
...

for (int i = 0; i < n; ++i) {
cout << list[rand()%list.size()] << endl;
}
}

不知道你是哪地方有出入吗?<