C++ でスコープがどのように機能するかについて、少し混乱しています。今のところ、else ステートメント内で finalStr が作成され、スコープを離れるとすぐに破棄されるようです。
std::string finalStr;
char curLine[128];
if( BINARY_ASCII == 1 ) //ignore this case please :D
{
cdata = convertBSTRToByteArray(data , numChars);
}
else
{
bstrInputString = ( LPCWSTR ) data;
std::strcpy(curLine, bstrInputString.operator char *());
std::string finalStr(curLine);
cout << "data is: " << finalStr.data() << "\n"; //prints the right string
}
cout << "string is: " << finalStr.data() << "\n"; //prints nothing except "string is: "
どうすればこれを修正できますか? 文字の配列をコピーするには、else ステートメントにそのコピー コンストラクターが必要だと思います。これを回避する方法はありますか?読んでくれてありがとう..