void getit()
{
int n, x;
cout << "Enter the number:";
while(!(cin >> n >> x))
{
cout << "Incorrect input. Please try again.\n";
cin.clear();
cin.ignore();
}
}
此功能检查输入的数据类型。如果是字符,则显示错误,如果是int,则函数正常工作。有没有办法一次为两个值执行此操作? (TURBO C ++) 我需要输入网格的坐标,并且只想使用一次getit函数而不是两次 //编辑:需要输入一个点的坐标,并检查用户是否输入了一个字符。想要同时为两个坐标
做这件事答案 0 :(得分:0)
您只需检查ascii值。
尝试类似
的内容void getit()
{
bool success;
char cn, cx;
int n, x;
success = false;
cout << "Enter the number:";
do
{
cin >> cn >> cx
if(cn < '0' || cn > '9' || cx < '0' || cx > '9')
{
cout << "Incorrect input. Please try again.\n";
cin.clear();
cin.ignore();
}
else
{
success = true;
}
} while(success == false);
n = cn-30;
x = cx-30;
//Your Calculations Here!!!
}
答案 1 :(得分:-1)
你需要检查的是
void getit()
{
int n, x;
while (1)
{
cout << "Enter two numbers:";
cin >> n >> x;
if (cin.fail())
{
cin.clear();
cin.ignore(50, '\n');
cout << "Incorrect input. Please try again.\n";
continue;
}
else
{
cout << "You entered " << n << " and " << x << endl;
break;
}
}
}