0

次のようなテキスト ファイルがあります。

Azrin, Neil
2.3  6.0  5.0  6.7  7.8  5.6  8.9  7.6
Babbage, Charles
2.3  5.6  6.5  7.6  8.7  7.8  5.4  4.5

それは24の異なる名前で続きます。名はファイルの 1 行目にあり、番号はファイルの 2 行目にあります。最初の数字はダイビングの難易度で、次の 7 つの数字は 7 人の異なる審査員によって与えられたスコアです。

ダイバーの名前と難易度は読み取れましたが、難易度に続くスコアは読み取れません。

正しく動作させるために考えられることはすべて試しましたが、誰か助けてもらえますか?

データを構造体に読み込むためのこれまでのコードは次のようになります

const int NUM_NAMES = 24;
const int NUM_SCORES = 7;
const int NUM_ROUNDS = 2;


typedef double scoreTable[NUM_ROUNDS] [NUM_SCORES];
typedef double difficultyList[NUM_ROUNDS];

struct diveInfo
{
string diversName;
double totalScore;
double diveTotal;
difficultyList diff;
scoreTable scores;

};


typedef diveInfo diverList[NUM_NAMES];


int main()
{
diveInfo record;
diveInfo * ptr;
ptr = &record;
int lcv;

ifstream inFile;
inFile.open ("diveData.txt");

if (!inFile)
{
    cout << "ERROR: File could not be opened" << endl << endl;

    exit (EXIT_FAILURE);
}


for (lcv = 0; lcv < NUM_NAMES; lcv++)

getline(inFile, ptr[lcv].diversName);

delete ptr;
ptr = new diveInfo;

inFile >> *ptr[lcv].diff;

delete ptr;
ptr = new diveInfo[NUM_SCORES];

inFile >> *ptr[lcv].scores;   // here is the problem 

return (EXIT_SUCCESS);
}
4

3 に答える 3

-1

C のように C++ を使用しています。構造体の代わりにクラスを作成する方が簡単で明確です。

ファイルを処理できるクラス Parser と、名前、難易度、およびスコアの配列を格納できるクラス Person を作成する必要があります。

このようにして、パーサーは Person インスタンスを作成し、それらをコンテナーに格納できます。

また、STL を使用してデータを保存することもできます。

さらに説明が必要な場合は教えてください。

よろしく、

于 2013-04-23T19:14:48.857 に答える