Допустимый ввод целочисленного текстового файла - C ++ - PullRequest
0 голосов
/ 30 апреля 2020

В настоящее время я пытаюсь выполнить проверку ошибок в течение времени l oop, которое выводит сообщение об ошибке, если значение в текстовом файле ограничено 0-15

Примеры ввода правильных чисел : 6 0 15 9 12

Примеры ввода неправильного числа: 16 -4 8,54 8 В +6 127 b u7

Я не совсем уверен, как выполнить проверку на наличие ошибок, если есть неверный ввод номера в текстовом файле

int main(int argc, char* argv[])
{
    if (argc == 1)
    {
        // no parameters on command line just the program name

        cout << "3719632,s3719632@student.rmit.edu.au,Neshant_Thiru" << endl;

        // The convention is to return Zero to signal NO ERRORS, if you change it the AutoTester will
        //assume you have made some major error.  Leave it as zero.
        return 0;
    }


    //--- START YOUR CODE HERE - After you have modified the above cout statement with your details.
    if (argc == 2) {
        string line_;
        ifstream file_(argv[1]);

        unsigned int var;
        int a = 240;
        unsigned int b;

        if (file_.is_open())
        {
            while (file_ >> var)
            {


                if (var >= 0 && var <= 15) {

                    b = a + var;
                    WritePortB(b);
                    cout << toBinary(b) << endl;
                    cout << '\n';
                    Sleep(1000);

                }
                else
                {
                    cout << "Y" << endl;
                    cout << '\n';
                }
            }
            file_.close();
        }
        else
        {
            cout << "F" << endl;
        }

    }
    if (argc > 2)
    {
        cout << "P" << endl;
    }

        // The convention is to return Zero to signal NO ERRORS, if you change it the AutoTester will
        //assume you have made some major error.  Leave it as zero.
    return 0;
}
```

1 Ответ

0 голосов
/ 01 мая 2020

Одним из подходов может быть попытка преобразовать текущую входную строку в число. Если это не удается, тогда другие символы используются только в виде цифр. Смотрите atoi() (символы в целое число) в stdlib. Посетите этот сайт, чтобы получить еще больше источников помощи: http://www.cplusplus.com/reference/cstdlib/atoi/
Однако это не охватит все случаи, которые вы назвали «недействительными» в своем описании.

Другой подход может соответствовать вашему входу с регулярным выражением (RegEx). Проверьте это: http://www.cplusplus.com/reference/regex/ и попробуйте поискать учебники и примеры в Интернете, если вы хотите go таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...