如何将文件中的字符串和整数放入多维数组中



假设有一场比赛,我们有x个种族,还有y个参赛者。每场比赛,每个参赛者都会得到0到10之间的分数。所以有一个文件,看起来像这样(当然没有点):

  • 切特 10 凯蒂 8 马克 3 瑞秋 5
  • 切特 3 凯蒂 9 马克 6 瑞秋 8
  • 切特 6 凯蒂 6 马克 7 瑞秋 0

我的问题是这里的字符串和整数是交替的,我不知道如何将它们放入多维数组中。

以下是如果文件中只有整数,我将如何做到这一点。是否可以修改它,以便我可以在我的程序中使用它?

string x;
int score,row=0,column=0;
int marray[10][10] = {{0}};
string filename;
ifstream fileIN;
cout<<"Type in the name of the file!"<<endl;
cin>> filename;
fileIN.open(filename);
while(fileIN.good())    //reading the data file
{
    while(getline(fileIN, x))
    {
        istringstream stream(x);
        column=0;
        while(stream >> score)
        {
            marray[row][column] = score;
            column++;
        }
        row++;
    }
}

数组(甚至是多维数组)是同类的,所有条目必须是同一类型。此属性允许 CPU 通过简单的置换操作计算数组任何条目的地址。

在您的情况下,您希望存储字符串和整数。因此,您可以简单地使用结构作为数组的入口。

struct Result {
  Result() : point(0)
  {}
  std::string contestantName;
  unsigned int point;
};
Result results[10][10];

其余代码与您编写的代码非常相似。

相关内容

  • 没有找到相关文章