以下是代码:
std::filebuf fbuffer;
if ( fbuffer.open( fileName, std::ios::in ) )
{
std::istream str( &fbuffer );
std::tstring line;
while ( std::getline( str, line, '\n' ) )
{
//parsing
}
}
在项目中我得到了这个代码,编译得很好。当我将此代码复制/粘贴到一次性项目中时,我收到了以下错误(为简洁起见,修剪了一些模板垃圾):
std::getline expects 2 arguments - 3 provided //getline() has overloads for 2 and 3 arguments
std::getline( std::basic_istream, std::basic_string, const _Elem ) template parameter '_Elem' is ambiguous: could be wchar_t or char
我一直在摆弄项目设置无济于事。有什么想法吗?
答案 0 :(得分:3)
找到#define:
#ifdef _UNICODE
#define tstring wstring
#else
#define tstring string
#endif
我将项目的字符集更改为“未设置”并且编译正常。感谢@ chris的评论,指出我正确的方向。