让我们说有一场比赛,我们有x场比赛和参赛者。 每场比赛,每位选手都获得0到10分之间的分数。 所以有一个文件,看起来像这样(当然没有点):
我的问题是这里的字符串和整数是交替的,我不知道如何将它们放入多维数组中。
如果文件中只有整数,下面是我要这样做的方法。是否可以修改它,以便我可以在我的程序中使用它?
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++;
}
}
答案 0 :(得分:2)
数组(甚至是多维数组)是同类的,所有条目必须是同一类型。此属性允许CPU使用简单的置换操作计算数组的任何条目的地址。
在您的情况下,您希望存储字符串和整数。所以你可以简单地使用struct作为数组的入口。
struct Result {
Result() : point(0)
{}
std::string contestantName;
unsigned int point;
};
Result results[10][10];
其余代码与您所写的内容非常相似。