2013-02-26 3 views
0

У меня есть код для чтения файла, но он используется std :: string, мне нужно использовать _bstr_t код, который может работать нормально. как изменить тип?C++ _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; 
     } 
    } 

ответ

2

Если вы читали _bstr_t documentation, вы увидите, что его assignment operator принимает нормальный 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(); 
    } 
} 
+0

если STEMP = "123", но только если sTeml = L "123", то может работать fine.how добавить "L"? –

+0

@ jack.li Возможно, вам придется использовать функции и классы широкого символа. –

+0

Я новичок в C++, поэтому я не знаю, как использовать широкоформатный файл для чтения или записи файла? –

Смежные вопросы