大家看下 下面这个程序:
#include <iostream>
using namespace std;
void new_line(void);
void get_in(int& number);
int main()
{
int n;
get_in(n);
cout<<"Final value read in ="<<n<<endl
<<"End ofdemostration."<<endl;
return(0);
}
void new_line(void) //new_line 作用,用来跳过这些字符
{
char symbol;
do
{
cin.get(symbol);
}while(symbol!='\n');
}
void get_in(int& number)
{
char ans;
do
{
cout<<"enter the number:";
cin>>number;
cout<<"\nIs the number correct?"<<endl
<<"yes or no"<<endl;
cin>>ans;
cin.putback(ans);
/* new_line(); */ //这个函数没去掉前一切正常,而且去掉后输入y开头的也正常,输入单个n
//也正常;但是!!我输入n后面再跟几个字母时(比如输入no);程序
//陷入死循环...想破脑袋不知道原因!没道理啊.....大家帮我说下原因吧!
}while((ans!='y')&&(ans!='Y'));//输入不是以y或Y开头时的字符串时重新循环;
}
大家帮我分析一下吧,我真不懂了.