下面是在VC++6.0下编译的
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s);
cout << s << endl;
return 0;
}
但是运行程序会发现需要按两次回车才会出现结果
查阅资料后发现是bug,后面的编译器像VS2010自然是解决了这个问题,当然在VC++6.0中,这个bug可以自己去修正
进入到VC++6.0的安装目录C:\Program Files\Microsoft Visual Studio\VC98\Include,找到名为string的文件,用记事本打开,然后找到下面这段代码
else if (_Tr::eq((_E)_C, _D))
{_Chg = true;
_I.rdbuf()->snextc();
break; }
将_I.rdbuf()->snextc();这一行注释掉,并改成_I.rdbuf()->sbumpc();
保存后重新编译运行,就会发现问题已经解决了