C++でプログラムの設定システムを作ろうとしましたが、configs avalibleのリストを表示しようとすると "const char *"を返す関数を使用しますが、funcは迷惑メールを返しますFuncが迷惑メールを返すC++
HERESにFUNC:
const char* GetCfgNameByIndex(int index) {
int Index = 0;
string path = "C:\\Astrium\\";
string temp;
for (auto & p : fs::directory_iterator(path)) {
if (p.path().has_extension() && p.path().extension().string() == ".ini") {
Index++;
}
if (Index == index) {
temp = p.path().filename().string();
cout << (const char*)temp.c_str() << endl;
return (char*)temp.c_str();
}
}
}
相続人は、私はそれを呼び出す方法:
cout << GetCfgNameByIndex(2) << endl;
と私はコンソールでそれを実行し、これは言う:
誰かが私には私の問題を聖霊降臨祭助けることができますか?
スコープの外に出た 'temp'文字列のバッファへのぶら下がりポインタを返しています。 – VTT
私は 'return(const char *)p.path().filename()。c_str();'のような別の方法を試してみました。同じ結果を返します。 – zShikdz
ポインタではなく文字列を返します。 – stark