A l oop никогда не запускается - PullRequest
0 голосов
/ 30 апреля 2020

Я пишу простую функцию, которая должна читать ввод от пользователя в виде строки. Проверьте, что строки состоят исключительно из цифр, затем преобразует их в и int и возвращает их. Проблема в том, что l oop никогда не используется независимо от ввода. Я изо всех сил пытаюсь найти root проблемы.

int correctInt()
{
    string temp;
    int input;
    bool m;
    do
    {
        m = false;
        getline(cin, temp);
        int length=temp.length();

        for (int a = 0; a < length; a++)
        {
            if (temp[a] < '0' && temp[a]>'9')
            {
                cout << "ID should consist of numbers. Try again: ";
                m = true;
                break;
            }
        }
        if (!m)
        {
            return input = atoi(temp.c_str());
        }
    } while (1);
}

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

Вы должны использовать ИЛИ вместо AND:

temp[a] < '0' || temp[a]>'9'
0 голосов
/ 30 апреля 2020

Попробуйте изменить && (и) условие на || (или) условие

if (temp[a] < '0' || temp[a]>'9')
...