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 回答