缓存清不了,不知道为什么。

wasdeq7521 2012-03-27 07:49:06
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
int main(){
int a,char b;
srand((unsigned)time(0));
do{
for(int i=0;i<1;i++){
double ran_num=rand()%10;
do{
cout<<"please enter a number between 1 to 10.\n";
cin.clear();
cin.sync();
cin>>a;
if(a==0){
cout<<"data type error!\n";
b='y';
continue;}
if(a<=0||a>=10){
cout<<"input a number between 1 to 10!\n";
b='y';
continue;}
if(a!=ran_num&&a>ran_num){
cout<<"please input a lesser number\n";}
if(a!=ran_num&&a<ran_num){
cout<<"please input a lager number\n";}
}while(a!=ran_num);
cout<<"Gongratulation!\n";
}
do{
cout<<"\nContinue(yes or no)?\n";
b=getche();
}while(b!='y'&&b!='n');
}while(b=='y');
}


各位大哥可以复制下来,到vc6中运行下试试。由于我才学c++,有很多问题啊~~~~
这个是个简单的猜数游戏,我想控制不能输入字母,但一旦输入字母就会出现无限循环的情况,应该是缓存没清,但我写了cin.clear();cin.sync();的呀,真不知道为什么了~~~~~;还有就是当猜对时,要输入“y”,才会出现 “Gongratulation!”,然后就立马重复游戏了......这个顺序不对啊,应该是出现“Gongratulation!”再问“Continue(yes or no)?”,输入“y”之后才继续游戏啊......
麻烦大家帮帮忙吧,我真不知道是哪出问题了~~~~~谢谢拉~~~~~
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wasdeq7521 2012-03-29
  • 打赏
  • 举报
回复
谢谢啦,我试过了,有用的~~~~
风云争霸 2012-03-27
  • 打赏
  • 举报
回复
你这个嵌套循环太多了 很容易出错的,

#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
#include<conio.h>
void main()
{ unsigned int a;
char b;
srand((unsigned)time(0));
double ran_num=rand()%10;
do{
b='c'; //将b赋值一个非Y/N
cout<<"please enter a number between 1 to 10.\n";
cin>>a;
if(a==0)
cout<<"data type error!\n";
if(a>=10)
cout<<"input a number between 1 to 10!\n";
if(a!=ran_num&&a>ran_num){
cout<<"please input a lesser number\n";}
if(a!=ran_num&&a<ran_num){
cout<<"please input a lager number\n";}
if (a==ran_num)
cout<<"Gongratulation!\n";

cout<<"\nContinue(yes or no)?\n";
cin>>b;}
while(b=='y');
}
W170532934 2012-03-27
  • 打赏
  • 举报
回复

int main(){
int a,char b;
srand((unsigned)time(0));
do{
double ran_num=rand()%10;
do{
cout<<"please enter a number between 1 to 10.\n";

cin>>a;
if (cin.bad())
{
cin.clear();
cin.sync();
continue;
}
else
{
if(a==0){
cout<<"data type error!\n";
b='y';
continue;
}
if(a<=0||a>=10){
cout<<"input a number between 1 to 10!\n";
b='y';
continue;
}
if(a!=ran_num&&a>ran_num){
cout<<"please input a lesser number\n";}
if(a!=ran_num&&a<ran_num){
cout<<"please input a lager number\n";}
}
}while(a!=ran_num);
cout<<"Gongratulation!\n";
do{
cout<<"\nContinue(yes or no)?\n";
b=getch();
}while(b!='y'&&b!='n');
}while(b=='y');
}


出错了再清除。

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧