**请不要直接答案或代码示例,这是我需要学习的功课。我正在寻求有关我需要开发的算法的帮助。
在为我的部分课堂作业提出解决方案时,我似乎遇到了逻辑错误,该程序涉及多个文件,但这是唯一相关的部分:
我有一个文件 PlayerStats ,其中包含篮球运动员的统计数据:
- 篮板
- 积分
- 助攻
- 制服 #
我最初的反应是创建一个while循环并将它们读入一个保存这些值的临时结构,然后创建一个合并函数,将临时结构的值与初始记录数组合并,够简单吗?
struct Baller
{
//other information on baller
int rebounds;
int assists;
int uniform;
int points;
void merge(Baller tmp); //merge the data with the array of records
}
//in my read function..
Baller tmp;
int j = 0;
inFile << tmp.uniform << tmp.assists << tmp.points << tmp.rebounds
while(inFile){
ArrayRecords[j].merge(tmp);
j++;
//read in from infile again
}
问题:文件的标识符之间可以有任意数量的空格,并且信息可以按任何顺序排列(省略统一编号,始终是第一个)。例如
PlayerStats 可能是
11 p3 a12 r5 //uniform 11, 3 points 12 assists 5 rebounds
//other info
或者
11 p 3 r 5 a 12 //same exact values
我想出了什么
似乎无法想出一种算法来以正确的顺序从文件中获取这些值,我正在考虑以下几点:
inFile << tmp.uniform; //uniform is ALWAYS first
getline(inFile,str); //get the remaining line
int i = 0;
while(str[i] == " ") //keep going until i find something that isnt space
i++;
if(str[i] == 'p') //heres where i get stuck, how do i find that number now?
else if(str[i] == 'a')
eles if(str[i] = 'r'