我用的是VC++ 2008,一般程序写类似getline(cin,name)的时候,执行起来没有问题。但是有时在写面向对象的程序的时候,在主函数里写这一句,往往会不执行而直接跳过去。比如在switch结构体中,或者循环中输入:
cout<<"Enter your name"<getline(cin,name);
cout<实际程序执行的时候跳过了getline一句,只显示a。在循环中,getline只执行了一次。后来摸索发现若在getline一句之前加cin.ignore(),或者重复geiline一句,则可以正常执行getline语句,而ignore语句会被跳过。
请问这是VC++的bug还是其他的原因,有没有更好的解决办法?请高人指点。
cin.getline接受的是字符串。语法:
cin.getline(char数组,n)。其中字符串长度为n,末尾是一个\0,所以只能输入n-1的有效字符。
也就是说,你的n必须小于等于数组定义的长度。我即便把n定义成5还是报错。
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息