Несколько лучшее решение:
atexit([] { system("PAUSE"); });
в начале вашей программы.
Плюсы:
- может использовать std :: exit ()
- может иметь несколько возвратов из основного
- , вы можете запустить свою программу под отладчиком
- Независимо от IDE (+ независимая от ОС, если вы используете
cin.sync(); cin.ignore();
system("pause");
)
Минусы:
- должны изменить код
- не будут останавливаться на std :: terminate ()
- все равно произойдет в вашей программе за пределами сеанса IDE / отладчика; вы можете предотвратить это в Windows, используя:
extern "C" int __stdcall IsDebuggerPresent(void);
int main(int argc, char** argv) {
if (IsDebuggerPresent())
atexit([] {system("PAUSE"); });
...
}
задан Community 23 May 2017 в 12:24
поделиться