西安大漠甘泉饮用水:问个简单的VC++出现的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 00:07:09
代码如下:
void Xze()
{
int a;
while(1) {
cout << "1: 全新查找 2: 继续查找" << endl;
cout << "3: 软件说明 4: 退出程序" << endl;
cout << "请选择:" ;
cin >> a;
if (a!=1&&a!=2&&a!=3&&a!=4) {
cout << "输入有误,请输入数字1-4" << endl;
continue;
}
switch(a) {
case 1: Czhao();
break;
case 2: JXCzhao();
break;
case 3: RJSming();
break;
case 4: cout << "正在退出程序.....\n";
}
}
}
很简单。如果输入的数字一切真常。如果输入字母则连续的循环都能看清楚。就循环这三句cout << "1: 全新查找 2: 继续查找" << endl; cout << "3: 软件说明 4: 退出程序" << endl; cout << "请选择:" ;
都不让我输入了。。怎么解决?

如果可行有办法让他不能输入字母呢?即按下字母键无效。

要是想打字时候没有屏幕回显,就可以解决问题。
即不用cin>>a, 而用a=getch(); 即

#include <conio.h>
...

while(1) {
cout << "1: 全新查找 2: 继续查找" << endl;
cout << "3: 软件说明 4: 退出程序" << endl;
cout << "请选择:" ;
a=getch();
if (a<'1' || a>'4') continue;
putch(a); a-='0'; break;
}
...

switch语句加一个default: break;就可以了。