+ -
当前位置:首页 → 问答吧 → 各位大神,怎么解决VC6.0中getline()敲两次回车才能结束

各位大神,怎么解决VC6.0中getline()敲两次回车才能结束

时间:2011-11-30

来源:互联网

各位大神,怎么解决VC6.0中getline()敲两次回车才能结束
各位大神,怎么解决VC6.0中getline()敲两次回车才能结束

作者: qq496017706   发布时间: 2011-11-30

珍惜生命,远离VC6即可。

作者: taodm   发布时间: 2011-11-30

VC6的bug,解决方法:
打开Include文件夹,UE打开STRING文件,找到165行的_I.rdbuf()->snextc(); 替换为_I.rdbuf()->sbumpc();

原文见:
http://hi.baidu.com/linan/blog/item/d0c09123107bb341ad34dea7.html

作者: yulinlang   发布时间: 2011-11-30

VC++6.0编译器getline函数存在bug,在读到限定符后还要读取额外字符...  
解决方法:进入X:\Program Files\Microsoft Visual Studio\VC98\Include目录(VC6.0安装的地方),用记事本打开string(注意,不是string.h),然后找到以下代码段.  
else if (_Tr::eq((_E)_C,_D))  
{_Chg = true;  
_I.rdbuf()->snextc(); // 把这一行注释掉,也可删掉  
_I.rdbuf()->sbumpc(); //添加这一行,这行本来没有  
break;  
}

现状:微软已经确认这是他们产品中的'臭虫'(bug),这个bug已经在Microsoft Visual C++ .NET得到修正.

作者: xingfeng2510   发布时间: 2011-11-30

lz还是听一楼的,珍惜生命,远离VC6。

作者: xingfeng2510   发布时间: 2011-12-01