我有一些代码来读取文件,但它使用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;
}
}
如果您阅读_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();
}
}