Как вы сравниваете несколько переменных с определенным типом данных в C ++? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть задание, в котором я нахожу стоимость доставки товара на основе входных данных из файла.Один из разделов просит меня прекратить работу программы, если в текстовом файле присутствует «Недопустимый символ»

Ожидаемый вывод:

*************** File Read Error ***************
==> Reading of one or more package
==> parameters failed!!
==> Terminating program!!!
***********************************************`

Мой вывод:

    --------------------------------------------------
The package attributes are: 
Package type .................bulk
Total length .................45 inches
Weight .......................2111390112 pound(s)
--------------------------------------------------
The package rate factors are: 
Package Base Rate ............4.75 dollars
Length Factor Used ...........2.5
Weight Factor Used ...........4.5
--------------------------------------------------

Вот мой код:

        if (typeid(length) != typeid(int) || typeid(width) != typeid(int) || typeid(height) != typeid(int) || typeid(weight) != typeid(int)) // tests the type of these variables
    {
        cout << string(15,'*') << " File Read Error " << string(15,'*') << endl;
        cout << "==> Reading of one or more package" << endl;
        cout << "==> parameters failed!!" << endl;
        cout << "==> Terminating program!!!" << endl;
        cout << string(47,'*') << endl << endl;
        return 1;
    }

Вот текстовый файл:

    // invalid character in height, width, length or weight
bulk
20
25
A15
25

По сути, программа должна завершиться, когда увидит A15, потому что она имеет символ и ожидает только целое число.

...