您的位置:程序门 -> c/c++ -> c++ 语言



怎么会是一个死循环


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎么会是一个死循环
发表于:2007-04-27 21:57:06 楼主
这是一个程序   怎么会是一个死循环呢       请高手指教:
#include <iostream>
using   namespace   std;
void   get_int   (int&   number);
int   main()
{
int   n;
get_int(n);
cout < < "final   value   read   in= " < <n < <endl
< < "end   of   demonstration.\n ";
return   0;
}


void   get_int(int&   number)
{
char   ans;

do
{
cout < < "enter   input   number: ";
cin> > number;

cout < < "you   entered   " < <number
< < "       is   that   correct?(yes/no): ";
cin> > ans;
cout < <ans < <endl;
               
               
}while((ans!= 'y ')&&(ans!= 'y '));
}

它的输出是一个死循环:
enter   input   number:   11
you   entered   11   is   that   correct?(yes/no):no
n
enter   input   number:you   entered   11   is   that   correct?(yes/no):n
enter   input   number:you   entered   11   is   that   correct?(yes/no):n
enter   input   number:you   entered   11   is   that   correct?(yes/no):n
enter   input   number:you   entered   11   is   that   correct?(yes/no):

我输入了一个11和第二行的no剩下的就是程序自己生成的。。。。
这是怎么一回事啊         怎么会是一个死循环呢??
cin是怎么读取no(和回车)的啊
各位高手帮帮忙吧     多谢了
发表于:2007-04-27 22:13:031楼 得分:0
ans是字符型   "no "是字符串
你把ans改成类型字符串就行了
发表于:2007-04-27 22:14:102楼 得分:0
改为字符串以后最后条件得变为   ans[0]!= 'y '...
发表于:2007-04-27 22:15:283楼 得分:0
把&&换成 ¦ ¦
发表于:2007-04-27 22:23:564楼 得分:0
朋友:
      我认为这不是的问题,你把while((ans!= 'y ')&&(ans!= 'y '));改成while((ans== 'y ')&&(ans== 'y '));试一下,我刚试过了;运行正常.
发表于:2007-04-27 22:24:515楼 得分:0
还要把=换成==
发表于:2007-04-28 15:12:296楼 得分:0
你们都没有明白我的意思     我能够用别的方法把程序写好       但是我就是想知道我的这个程序为什么会是个死循环       请不要给我提任何关于修改的事       因为我要的不是怎么修改   我要的是谁能告诉我它是个死循环!!!
发表于:2007-04-28 15:24:357楼 得分:0
因为你的ans是char型,   只能接收一个字符.
你输入的字符串过长,   造成内存益处,   结果不可预料.
发表于:2007-04-28 17:03:288楼 得分:0
dai_weitao()     正解...
发表于:2007-04-29 13:12:309楼 得分:0
1.输入no后回车,cin从输入缓冲区取得n交给了ans,o还留在输入缓冲区。
2.接下来cin> > number时候,cin从输入缓冲区取得o交给number,类型不匹配,
输入流出错(流的状态字被置为1),number里面还是11。
3.状态字出错后,后面的cin> > ans不会有什么动作,这行代码直接过去,
ans里面还是n。
4.后面就是死循环了。

发表于:2007-04-30 11:35:4710楼 得分:0
这么深奥的啊   谢谢哦         可是我在哪里才能学到这个知识呢       在c++里面好象没有的吧


快速检索

最新资讯
热门点击