检查int的输入,如果它的char再次请求输入(Turbo C ++)

时间:2017-11-21 03:44:47

标签: c++

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函数而不是两次 //编辑:需要输入一个点的坐标,并检查用户是否输入了一个字符。想要同时为两个坐标

做这件事

2 个答案:

答案 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;
                }   
        }   
}

请参阅http://www.cplusplus.com/reference/ios/ios/fail/