【发布时间】:2015-01-12 08:23:23
【问题描述】:
我基本上有一个看起来像这样的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));
}
}
}
【问题讨论】:
-
你
new,但你从来没有delete [],这会泄漏内存。相反,使用std::string和std::vector这样您就不需要直接分配内存(然后您也不需要使用C 字符串函数)。