C++ | Почему после команды "cin" приложение закрывается?

Правки вносить можно.

Не хотелось задавать такой странный вопрос, но я всё-же хочу писать на C++. Дело в том, что в моей программе объявляется переменная num(я просто ещё учу..) и после этого у пользователя спрашиваются данные ввода. cin >> num;. После того, как пользователь ввёл значение, по сути, программа должна вывести такую строчку:

Num is |пользовательский ввод|

но она вместо этого - закрывается. Я пишу код в JetBrains CLion, и там в консоли всё работает как должно, но когда я открываю сам свой .exe-шник, то я ввожу данные и она мигом закрывается. Я использую компилятор MinGW если что, и 20 стандарт C++. И в конце я сделал страховку cin.get();, но она не помогает. Помогите, мой код:

#include <iostream>

using namespace std;

int main() {
    int num;
    cin >> num;

    cout << "Num is " << num << endl;

    cin.get();
    return 0;
}

Дополнения:

Я проверил в консоли JetBrains CLion, и там похоже что, cin.get(); не видится


Ответы (1 шт):

Автор решения: Harry

Потому что программа завершается - что вы еще хотите? Она закончилась, окно закрылось, занавес опущен, зрители расходятся.

Почему закончилась? потому что в буфере ввода после чтения числа остается введенный вами Enter - который и читает cin.get().

Этому эффекту посвящен целый вопрос - посмотрите здесь.

Некоторые предпочитают использовать

system("pause");

которая перед выводом надписи на экран чистит входной буфер. Но нормальное решение - просто запускать программу в консольном окне (окне командной строки), которое само по себе не закрывается по окончании запущенной из него программы.

→ Ссылка