在Windows 7和8運行良好。但是,當在XCode 4中運行時,當有人加載地圖(從標題中選擇「加載地圖」)時,我會在第二次迭代中獲得EXC_BAD_ACCESS。
您可以用XCode project
#include <string>
#include <map>
#include <iostream>
std::map <std::string, std::string> info;
std::string* get_key_val(std::string* line)
{
std::string key_val[2];
int start, end;
start = line->find_first_not_of(" ");
end = line->find_last_of(":");
if(start == -1)
{
return NULL;
}
else if(end == -1)
{
return NULL;
}
else
{
key_val[0] = line->substr(start, end - start);
}
start = line->find_first_not_of(" ", end + 1);
end = line->find_last_of(" \n\r");
if(start == -1)
{
return NULL;
}
else if(end == -1)
{
return NULL;
}
else
{
key_val[1] = line->substr(start, end - start);
}
return key_val;
}
void parse_from_line(std::string* line)
{
std::string* keyv = get_key_val(line);
if(keyv[0].empty() == false && keyv[1].empty() == false) info[ keyv[0] ] = keyv[1];
}
int main(int argc, char* args[])
{
std::string line = "name: Foo";
parse_from_line(&line);
std::cout << "Hello " << info["name"].c_str();
}
有沒有更簡單的這個問題的例子?你要求人們做大量的閱讀和研究。 (你也可以在這個過程中解決問題) – 2012-01-05 17:10:34
墊子:是的,我用線條鏈接到它,應該已經複製了代碼,對不起。 DrewDormann和Sam Miller:我一直在嘗試,但無法重現它。雖然我認爲這是因爲我在做主要事情而不是添加其他功能,現在很容易重新創建,我知道這個問題,我會繼續爲未來的觀衆添加一個上面的編輯。 – 2012-01-05 22:30:21