C++ getline问题
我用的是VC++2008,一般程序写类似getline(cin,name)的时候,执行起来没有问题。但是有时在写面向对象的程序的时候,在主函数里写这一句,往往会不执行而直...
我用的是VC++ 2008,一般程序写类似getline(cin,name)的时候,执行起来没有问题。但是有时在写面向对象的程序的时候,在主函数里写这一句,往往会不执行而直接跳过去。比如在switch结构体中,或者循环中输入:
cout<<"Enter your name"<<endl;
getline(cin,name);
cout<<name<<"a";
实际程序执行的时候跳过了getline一句,只显示a。在循环中,getline只执行了一次。后来摸索发现若在getline一句之前加cin.ignore(),或者重复geiline一句,则可以正常执行getline语句,而ignore语句会被跳过。
请问这是VC++的bug还是其他的原因,有没有更好的解决办法?请高人指点。 展开
cout<<"Enter your name"<<endl;
getline(cin,name);
cout<<name<<"a";
实际程序执行的时候跳过了getline一句,只显示a。在循环中,getline只执行了一次。后来摸索发现若在getline一句之前加cin.ignore(),或者重复geiline一句,则可以正常执行getline语句,而ignore语句会被跳过。
请问这是VC++的bug还是其他的原因,有没有更好的解决办法?请高人指点。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询