注册 登录
编程论坛 C++教室

[求助]我做了一个简单的掷色子的程序,想请教一个问题

beethoven10 发布于 2006-05-24 22:06, 1255 次点击
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
void main()
{
int x;
srand(time(0));
do{x=rand()%6+1;
cout<<x<<endl;}
while(x<6);
cout<<endl;
}
它一运行程序就一口气完了,我希望他每掷完一个色子就停下来,再按回车才继续掷,请问该怎样设计?
8 回复
#2
freshman422006-05-24 23:17
以下是引用beethoven10在2006-5-24 22:06:00的发言:
#include<iostream.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int x;
srand(time(0));
do{x=rand()%6+1;
cout<<x<<endl;
getch();}
while(x<6);
cout<<endl;
}
它一运行程序就一口气完了,我希望他每掷完一个色子就停下来,再按回车才继续掷,请问该怎样设计?

#3
bleach19832006-05-26 09:24

很冒昧地将程序改了一下,当输入“ctrl+z”时,游戏停止
[CODE]#include<iostream.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int x;
srand(time(0));
do{ x=rand()%6+1;
cout<<x<<endl;
getch();
}
while(x=cin.get()!=EOF);

}[/CODE]
不过有一个问题,就是投第二次色子时,得连按2次ENTER,请大家帮看看。

#4
maui20002006-05-26 09:38
用 getch();

写个死循环 比如 按0退出
char cChose
do
要运行的程序
cChose = getch();
cChose = toupper( cChose );
while(cChose!='0')
#5
bleach19832006-05-26 10:28
我试过了,但是还是得连按2次enter才会出现数字。
如果想只按一次呢~~呵呵,这个问题我提得有点模糊
#6
song42006-05-26 10:39
以下是引用bleach1983在2006-5-26 9:24:00的发言:

很冒昧地将程序改了一下,当输入“ctrl+z”时,游戏停止
[CODE]#include<iostream.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int x;
char c;
srand(time(0));
do{ x=rand()%6+1;
cout<<x<<endl;
c=getch();
}
while(c!=EOF);

}[/CODE]
不过有一个问题,就是投第二次色子时,得连按2次ENTER,请大家帮看看。

getch等待输入一次 x=cin.get()!=EOF等待输入一次

把他们合起来好了

#7
wfpb2006-05-26 12:56

呵呵,94这么回事

#8
beethoven102006-12-28 09:26

用system("pause")可以中断程序

#9
beethoven102006-12-28 09:29
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
void main()
{
int x;
srand(time(0));
do{x=rand()%6+1;
cout<<x<<endl;
system("pause");}
while(x<6);
cout<<endl;
}
1