我有一個文本文件,它看起來像:指針讀取數據到結構C數組++
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個不同的名字。名字在第一行,數字在文件的第二行。第一個數字是潛水的難度級別,後面的數字是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);
}
分數是一個二維數組。 * ptr [lcv] .scores不能訪問您認爲的內容。它看起來並不像你的數據文件對每個潛水員有14個分數,那麼爲什麼在分數陣列中有兩個七輪?您是否也想在從文件中讀取數據後刪除數據?當你輸入delete ptr時,你不再可以訪問剛纔讀取的數據。 – Joshua 2013-04-23 19:11:32
請改善你的編碼風格。很多錯誤在那裏,編碼風格看起來很可怕:( – 2013-04-23 19:23:49
當你寫ptr [lcv]時,你已經取消了ptr的引用,所以你不必使用* – 2013-04-23 19:20:22