2017-03-01 91 views
0

wstringをtxtファイルから読みたいです。 私はファイル名をSourceFileNameという変数に格納しています。それはwstringです。 txtファイルでは、以下の文字列を持っていますgetlineのオーバーロードされた関数のインスタンスがありません

112:abc 
221:ghj 
.... 

は、今私はwstringの列にtxtファイルからこれらの番号とそれに対応する文字列を読みたいが、私はそれをやろうとしたとき、VSはことを私に通知しますstd :: getline macthes引数リストのオーバーロードされた関数のインスタンスはありません。

std::wifstream map; 
map.open(SourceFileName.c_str()); 

std::wstring fileID; 
std::wstring fileName; 

std::getline(map, fileID, L":");//error happens here. 

どのように修正するのですか? 私もstd::getline(map, fileID, ":");を試しましたが、うまくいきません。 enter image description here

+1

正確なエラーは何ですか?悪魔は詳細です。 –

+0

コンパイラはオーバーロードの候補を示唆していませんか? – user2079303

+0

'std :: getline(map、fileID、L ':');'区切り文字は文字であり、文字列ではありません。 –

答えて

2

std::getlineの第3引数として文字列リテラルを受け入れる過負荷はありません。

std::getline(map, fileID, L':'); 

ヒント:コンパイラは一致するオーバーロードが見つからない場合は、それは過負荷が受け入れるか、引数の種類を見てみましょうするのに役立ちます、それは区切り文字を必要としている両方のオーバーロードが文字であることを。

関連する問題