Принудительное завершение программы

307
20 сентября 2017, 12:30

Подскажите, как при выборе второго пункта меню экстренно закончить выполнение программы, пытался зациклить меню, но видимо из-за выполнения кода в структурах, не вышло. При вызове exit(0); ничего не происходит, в чем может быть косяк? Код прикладываю

struct rectangle
{
    point p1, p2, p3, p4;
    rectangle()
    {
        while (true)
        {
            /* cout << "Координата левой верхней точки прямоугольника:" << endl << "x=";
            cin >> p1.x;*/
            for (;;)
            {
                std::cout << "Координата левой верхней точки прямоугольника:" << endl
                          << "x=" << std::flush;
                if ((std::cin >> p1.x).good()) break;
                std::cin.clear();
                cin.ignore(std::numeric_limits<std::size_t>::max(), '\n');
            }
            for (;;)
            {
                std::cout <<  "y=" << std::flush;
                if ((std::cin >> p1.y).good()) break;
                std::cin.clear();
                cin.ignore(std::numeric_limits<std::size_t>::max(), '\n');
            }
            for (;;)
            {
                std::cout << "Координата правой нижней точки прямоугольника:" << endl
                          << "x=" << std::flush;
                if ((std::cin >> p2.x).good()) break;
                std::cin.clear();
                cin.ignore(std::numeric_limits<std::size_t>::max(), '\n');
            }
            for (;;)
            {
                std::cout << "y=" << std::flush;
                if ((std::cin >> p2.y).good()) break;
                std::cin.clear();
                cin.ignore(std::numeric_limits<std::size_t>::max(), '\n');
            }
            if ((p1.x < p2.x) && (p1.y > p2.y))
            {
                p3.x = p1.x;
                p3.y = p2.y;
                p4.x = p2.x;
                p4.y = p1.y;
                break;
            }
            cout << "Некорректный ввод." << endl;
        }
    }
};

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
    int variant = prompt_menu_item();
    cin.ignore(10, '\n');
    rectangle R;
    line L;
    switch (variant)
    {
        case 1:
            findPoints(R, L);
            break;
        case 2:
            exit(0);
            break;
        default:
            ;
    }
    while ((variant > 0) && (variant < 5));
    getchar();
    system("pause");
    return 0;
}
READ ALSO
Как использовать другой компилятор в CLion в Linux?

Как использовать другой компилятор в CLion в Linux?

Например, я хочу собрать под Linux'ом exe-шникMinGW для g++ это позволяет сделать(ведь да?)

405
Перегрузка оператора присваивания

Перегрузка оператора присваивания

В программе есть класс Player, Animation

389
C++ Как наиболее правильно определить класс в неймспейсе другого класса?

C++ Как наиболее правильно определить класс в неймспейсе другого класса?

Требуется, чтобы классы hero и SpawnEnemies находились в пространстве имен класса Engine

195
Загрузка файла на сервер (python, jquery)

Загрузка файла на сервер (python, jquery)

ЗдравствуйтеИспользую связку python и jquery, требуется загрузка файла на сервер

197