C++中输错后怎样重新输入

比如我要编写一个公路收费问题的程序,下面是程序的一部分,while(n!=0){cout<<"请输入车型(1:小客车2:卡车3:公汽)统计收费金额(按4出现统计结果按0结... 比如我要编写一个公路收费问题的程序,下面是程序的一部分,

while(n!=0)
{
cout<<"请输入车型(1:小客车 2:卡车 3: 公汽)统计收费金额(按4出现统计结果按0结束)"<<endl;
cin>>n;

switch(n)
{case 1:cars();break;
case 2:trucks();break;
case 3:buses();break;
case 4:display();break;
default:cout<<"Wrong!"<<endl;
}
if(n==0) break;
}
}

void Free::display()
{
cout<<"————————————————————————"<<endl;
cout<<"各类车型的车辆数和收费小计情况如下:"<<endl;
cout<<"小客车:共"<<car<<"辆,总计"<<carfee<<"元。\n";
cout<<"卡车:共"<<truck<<"辆,总计"<<truckfee<<"元。\n";
cout<<"公汽:共"<<bus<<"辆,总计"<<busfee<<"元。\n";
cout<<"所以车辆总计收入为"<<carfee+truckfee+busfee<<"元。\n";
cout<<"————————————————————————"<<endl;
}
假如我需要输入的是2,即我想输入的是卡车,但我不小心按成了3,那么这个3代表的就加到了总的车辆数中去,怎么编写可以使这个2消去,即表示输入错误重新输入?
展开
 我来答
djh543
2012-04-11 · TA获得超过156个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:87.4万
展开全部
在switch(n)里加一个
case 5:reduce();break;
假设私有成员为:int a,b,c;
加入下面的函数,用来消除错误的输入
void Free::reduce()
{
cout<<"请输入要消去的车型(1:小客车 2:卡车 3: 公汽)任意数字为取消"<<endl;
cin>>m;
switch(m)

case 1:a--;break;
case 2:b--;break;
case 3:c--;break;
default:cout<<"已选择不消去"<<endl;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式