getline遇到ctrl+z不会退出的,按回车才会退出
追答按2次Ctrl+Z试试,我测试了下Ctrl+Z之后再输入的字符是不会保存在string中的,说明已经退出输入了
追问按2次Ctrl+Z的确可以,但是第一个Ctrl+Z也被保存在字符串里了
追答这个是跟环境有关系了,是getline函数的一个Bug,在VC++ .NET中有修正,要解决的话,可以改..\Microsoft Visual Studio\VC98\Include\STRING 文件,如下
else if (_Tr::eq((_E)_C, _D))
{_Chg = true;
// _I.rdbuf()->snextc(); //这行注释掉,改成下面一行
_I.rdbuf()->sbumpc();
break; }
不规定最大长度可以吗
追答这是cin流函数的默认参数,可以再用strlen()动态求,没办法
可以试试cin.get()