我使用rapidjson讀取JSON文件,其中一些值是字符串。現在,rapidjson的GetString()
方法返回const char *
。不過,我想將它存儲在std::string
中。我試過這個:用const char *初始化std :: string導致亂碼
const char* foo = d["foo"].GetString();
printf("Foo: %s\n", foo); // Prints correctly
std::string fooStr(foo);
printf("FooString: %s\n", fooStr); // Gibberish
我該如何得到正確的std::string
?
'%s'必須採用'char *',而不是'std :: string'。在那裏使用'fooStr.c_str()'。另外,'d'是什麼? – 2014-08-29 11:33:48
@MattMcNabb d是rapidjson文檔。 – manabreak 2014-08-29 11:34:45
從你的問題中不清楚'foo'是否指向有效的存儲空間,或者破壞了存儲空間 – 2014-08-29 11:35:59