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 шт):
Потому что программа завершается - что вы еще хотите? Она закончилась, окно закрылось, занавес опущен, зрители расходятся.
Почему закончилась? потому что в буфере ввода после чтения числа остается введенный вами Enter - который и читает cin.get().
Этому эффекту посвящен целый вопрос - посмотрите здесь.
Некоторые предпочитают использовать
system("pause");
которая перед выводом надписи на экран чистит входной буфер. Но нормальное решение - просто запускать программу в консольном окне (окне командной строки), которое само по себе не закрывается по окончании запущенной из него программы.