我基本上有一个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