У меня есть код для чтения файла, но он используется 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();
}
}
Других решений пока нет …