1

ファイルを読み取るためのコードがいくつかありますが、std :: stringを使用しています。_bstr_tを使用する必要があり、次のコードは正常に機能します。タイプを変更する方法は?

   std::ifstream inFile("QdatPassWordconfig.config");
  std::string sPassWord; //(here, i need to use _bstr_t)
  std::string sTemp;
  if (inFile.is_open())
  {
      if(std::getline(inFile,sTemp)) 
      {
            cout<<sTemp<<endl;
            sPassWord=sTemp;
      }
  }
4

1 に答える 1

3

_bstr_tドキュメントを読むと、その代入演算子が通常のをとっていることがわかりますconst char *

したがって、おそらくそれに割り当てるだけです:

_bstr_t sPassword;

// ...

sPassword = sTemp.c_str();

通常の狭い文字列の使用に問題がある場合は、これに関連するすべてのコードを、広い文字列、つまりwプレフィックスが付いたクラスを使用するように変換する必要があります。

std::wifstream inFile("QdatPassWordconfig.config");
_bstr_t sPassword;
std::wstring sTemp;

if (inFile.is_open())
{
    if(std::getline(inFile, sTemp)) 
    {
        std::wcout << sTemp << endl;

        sPassword = sTemp.c_str();
    }
}
于 2013-02-26T06:04:58.203 に答える