我对c ++很新,很抱歉,如果这是一个愚蠢的问题。
我有一个基于控制台的游戏,你输入一个分数,并在你完成游戏后输入一个名字。分数在文件中,看起来像
4
6
3
非常简单。名称格式相同,看起来像这样
Dylan
Justin
Drew
当显示分数时,它们看起来像这样
Dylan 4
Justin 6
Drew 3
我必须显示的代码是:
infile.open("name.txt", ios::out | ios::app);
ofile.open("points.txt", ios::out | ios::app);
while (getline(infile, STRINGT) && getline(ofile, STRINGO))
{
cout << STRINGT << ' ';
cout << STRINGO << '\n';
}
infile.close();
ofile.close();
_getch();
我想将分数排序最小到最大(分数越低越好)。我最初的计划是取得分数并将它们放在一个数组中,然后从那里进行组织,但我的问题是我不知道如何将这些名称与分数一起排序。我该怎么做?
答案 0 :(得分:0)
您可以创建一个结构:
struct result {
string name;
int score
}
int number;
string word;
然后你创建了一个该结构的向量,假设有100个元素:vector<result>myvector(100)
将元素解析为单词和整数:
infile>>word ofile>>number
然后将值添加为:myvector.name[0]="name"
和myvector.score[0]=value
要打印出来,你可以这样做:
cout<<myvector.name[0]="name"`<<" "<< `myvector.score[0]=value<<endl;
注意:要对向量中的元素进行排序,请使用sort(myvector.begin(),myvector.end());