在多个文件中配对字符和数字

时间:2015-03-14 23:45:05

标签: c++ arrays file

我对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();

我想将分数排序最小到最大(分数越低越好)。我最初的计划是取得分数并将它们放在一个数组中,然后从那里进行组织,但我的问题是我不知道如何将这些名称与分数一起排序。我该怎么做?

1 个答案:

答案 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());