2013-02-26 139 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」,但只有當莖1 = L 「123」,然後可以工作fine.how加上 「L」? – 2013-02-26 06:20:07

+0

@ jack.li您可能必須使用寬字符功能和類。 – 2013-02-26 06:23:09

+0

我是新的C++,所以我不知道如何使用寬字符來讀取文件或寫入文件? – 2013-02-26 06:24:39

相關問題