2 liangxiaoqi c liangxiaoqi_c 于 2015.06.10 22:54 提问

C++ 面向对象循环问题

想要程序不断运行知道自定义不想再运行为止,是不是应该定义一个循环?如何让上一次的循环不影响下一次的循环?

简单地说,就是输入不同数据,得到不同结果,结果相互不影响。
就像是计算器,第一次运算结束后可以清空,在接着计算,只要不退出。
请问该怎么办?

9个回答

caozhy
caozhy   Ds   Rxr 2015.06.10 22:56

可以这样:
while (true)
{
char ch;
scanf("%c", &ch);
if (ch == 'x') break;
... //按下x退出,按下别的你可以执行你的程序,你还可以做一个菜单
}

liangxiaoqi_c
liangxiaoqi_c 回复caozhy: 我写在回答栏里了。
2 年多之前 回复
caozhy
caozhy 回复liangxiaoqi_c: 贴出你的代码看看,注意,贴代码要用工具栏上的</>符号,贴好以后检查下,不要丢字符。我帮你看看
2 年多之前 回复
liangxiaoqi_c
liangxiaoqi_c 我之前是想用调用一个自定义的重置函数,为什么会行不通啊
2 年多之前 回复
liangxiaoqi_c
liangxiaoqi_c   2015.06.10 23:17

for(;;)
{
int number = 0;
cout<<"************************************"< cin>>i;
switch(i)
{

case 1: b_display();c1.reset();break;
case 2: o_display();c1.reset();break;
case 3: d_display();c1.reset();break;
case 4: h_display();c1.reset();break;
case 0: exitSystem(); break;
default:cout<<"抱歉,没有该选项!"<<endl;
}
break;
}


m15004600279
m15004600279   2015.06.10 23:18

开线程循环用waitforevent卡着吧

liangxiaoqi_c
liangxiaoqi_c 没学过这个。不要求用课外的知识
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.10 23:18

reset代码在哪里,代码不全,还有让你用代码工具栏的按钮包裹你的代码,你也没有做到。

liangxiaoqi_c
liangxiaoqi_c 不太会弄这个。抱歉
2 年多之前 回复
liangxiaoqi_c
liangxiaoqi_c   2015.06.10 23:19

for(;;)
{
int number = 0;
cout<<"*******************************************************"< cin>>i;
switch(i)
{

case 1: b_display();c1.reset();break;
case 2: o_display();c1.reset();break;
case 3: d_display();c1.reset();break;
case 4: h_display();c1.reset();break;
case 0: exitSystem(); break;
default:cout<<"抱歉,没有该选项!"<<endl;
}
break;
}


caozhy
caozhy   Ds   Rxr 2015.06.10 23:24

你要把 cin 写在循环里才有用,否则之后循环永远i是第一次输入的值。
另外你还是没有把代码包裹在正确的标记里(而是在最后),同时也没有给出reset的定义

liangxiaoqi_c
liangxiaoqi_c 代码弄不上去我也懒得弄了,我自己想吧。谢谢了。
2 年多之前 回复
liangxiaoqi_c
liangxiaoqi_c   2015.06.10 23:24

第一小段
class C
{
public:

inline void reset()
{
int number = 0;
}
};

第二小端
for(;;)
{
int number = 0;
cout<<"************************************"< cin>>i;
switch(i)
{

case 1: b_display();c1.reset();break;
case 2: o_display();c1.reset();break;
case 3: d_display();c1.reset();break;
case 4: h_display();c1.reset();break;
case 0: exitSystem(); break;
default:cout<<"抱歉,没有该选项!"<<endl;
}
break;
}

caozhy
caozhy   Ds   Rxr 2015.06.10 23:33

for (;;)
{
cin >> i;
...
}
这样写

liangxiaoqi_c
liangxiaoqi_c 就是for(){菜单;cin;switch,case 1:b_display();break; case ...... ;continue}
2 年多之前 回复
liangxiaoqi_c
liangxiaoqi_c 我是这样写的啊
2 年多之前 回复
u012377333
u012377333   Rxr 2015.06.11 09:59

需要循环读取你的输入

Csdn user default icon
上传中...
上传图片
插入图片