没有 getline 的重载函数实例

No instance of overloaded function for getline

我想从 txt 文件中读取 wstring。 我将文件名存储在一个名为 SourceFileName 的变量中,它是 wstring 变量。在 txt 文件中,它具有以下字符串:

112:abc
221:ghj
....

现在我想将这些数字及其对应的字符串从 txt 文件中读取到 wstring 字符串中,但是当我尝试这样做时,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, ":");,也不行。

std::getline 没有接受字符串文字作为第三个参数的重载。具有它的两个重载都要求分隔符是一个字符:

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

提示:当编译器找不到匹配的重载时,查看重载接受的参数类型会有所帮助。