2015-10-15 116 views
0

我想弄清楚這個問題了,由於某種原因,我不斷收到此相匹配很多時候,因爲人們使用了流,或者他們不使用ifstream對象(如果我說得對的話)具有getline的第一個屬性。我很迷茫。與ifstream的使用函數getline沒有「函數getline」的實例參數列表

 #include <string> 

     std::wifstream myfile; 
     myfile.open("LaunchLocations.txt"); 
     getline(myfile, gameLaunchtest.directory); 

struct gameLaunch 
{ 
    wchar_t directory[MAX_PATH]; 
    wchar_t AppName[MAX_PATH]; 
    wchar_t ComboBoxName[MAX_PATH]; 

}gameLaunchtest; 
+1

你的意思'的std ::函數getline()'那裏? –

+0

並且'目錄'聲明爲'std :: wstring'? –

+0

我試圖用函數getline從包括 但我也用的std ::函數getline(IDK的,如果它們是相同的,我是很新的C++編程) 但不管怎麼說,當我做的std ::函數getline我收到錯誤: 沒有重載函數「std :: getline」的實例匹配參數列表 –

回答

0

std::getline()不支持讀取成wchar_t[]陣列,只有成std::stringstd::wstring(取決於輸入流類型)。要讀入一個wchar_t[],你需要使用std::wifstream::getline()方法來代替:

myfile.getline(gameLaunchtest.directory, MAX_PATH); 
+0

謝謝:)做了我的奇蹟!這可能是一個noob錯誤,我只是喜歡使用wchar_t,因爲使用Win32 Api非常簡單直接。 我很感謝你的回答。 –

+1

@TrevinCorkery使用'std :: wstring'而不是wchar_t數組,並且在需要將字符串傳遞給WinAPI函數時使用它的'.c_str()'成員函數 –