c++的标准库模板函数getline在读到限定符后还要读取额外字符...
解决方法:进入
- X:\Program Files\Microsoft Visual Studio\VC98\Include
打开string(注意,不是string.h),然后找到以下代码段. 将snextc()换成sbumpc()
else if (_Tr::eq((_E)_C,_D))
{_Chg = true;
_I.rdbuf()->snextc(); // 把这一行注释掉,也可删掉
_I.rdbuf()->sbumpc(); //添加这一行,这行本来没有
break;
}
现状:微软已经确认这是他们产品中的'臭虫'(bug),这个bug已经在Microsoft Visual C++ .NET得到修正.
本文介绍了一个C++标准库模板函数getline的问题,在遇到限定符后会继续读取额外字符。文章给出了具体的解决步骤:通过修改string文件中的代码,将snextc()替换为sbumpc()来修复该bug。
611

被折叠的 条评论
为什么被折叠?



