我基本上有一個txt
文件看起來像這樣...截斷和刪除字符
High Score: 50
Player Name: Sam
Number Of Kills: 5
Map
Time
我想Map
後:
或空白和Time
之前一切存儲到一個數組和一切在另一個之後。對於Map
和Time
,之後沒有任何內容,所以我想將空白存儲爲null
。
到目前爲止,我已經設法讀取並存儲所有這些信息到temp
陣列中。然而,這是分開的,我遇到了麻煩。這是我的代碼:
istream operator >> (istream &is, Player &player)
{
char **temp;
char **tempNew;
char lineInfo[200]
temp = new char*[5];
tempNew = new char*[5];
for (int i=0; i<5; i++)
{
temp[i] = new char[200];
is.getline(lineInfo, sizeof(lineInfo));
int length = strlen(lineInfo);
for (int z=0; z < length; z++)
{
if(lineInfo[z] == '= '){ //HOW DO I CHECK IF THERE IS NOTHING AFTER THE LAST CHAR
lineInfo [length - (z+1)] = lineInfo [length];
cout << lineInfo << endl;
strncpy(temp[i], lineInfo, sizeof(lineInfo));
}
else{
tempNew[i] = new char[200];
strncpy(tempNew[i], lineInfo, sizeof(lineInfo));
}
}
}
你'新''但你從不'刪除[]',這會泄漏內存。相反,使用'std :: string'和'std :: vector',所以你不需要直接分配內存(然後你也不需要使用C的字符串函數)。 – crashmstr 2014-11-14 20:48:27