**直接の答えやコード例はありません。これは私が学ぶ必要のある宿題です。開発する必要のあるアルゴリズムに関するヘルプを探しています。
クラスの作業の一部の解決策を考え出す際に論理エラーが発生しているようです。プログラムには複数のファイルが含まれていますが、関連する部分は次のとおりです。
バスケットボール選手の統計を保持する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'