Использование команды system(pause) в C++
В этой статье мы рассмотрим использование команды system(\pause) в C++.
Перед прочтением этой статьи обратите внимание на то, что команда system(pause)
доступна только в системах Windows.
Это означает, что вы не можете использовать это с любой машины Linux/Mac.
Команда система()
Прежде чем перейти к команде system(\pause), давайте разберемся, что делает system()
.
#include <cstdlib>
int system(const char *command);
Функция system()
выполняет вызов операционной системы для запуска определенной команды.
Обратите внимание, что мы должны включить заголовочный файл <cstdlib>
.
Это очень похоже на открытие терминала и выполнение этой команды вручную.
Например, если вы хотите использовать команду \ls из Linux, вы можете использовать system(ls)
.
Если у вас есть компьютер с Linux/Mac, вы можете попробовать приведенный ниже код.
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
// Try the "ls -l" command from your Linux / Mac machine
int ret = system("ls -l > test.txt");
return 0;
}
Возможный результат
total 16
-rwxr-xr-x 1 2001 2000 9712 Jun 25 21:11 a.out
-rw-rw-rw- 1 2001 2000 209 Jun 25 21:11 main.cpp
-rw-r--r-- 1 2001 2000 0 Jun 25 21:11 test.txt
Теперь, когда мы немного разобрались, что может делать system()
, давайте посмотрим на команду system(\pause).
Использование команды system («пауза») в C++
Это специфичная для Windows команда, которая указывает операционной системе запустить программу pause
.
Эта программа ожидает завершения и останавливает выполнение родительской программы C++. Только после завершения программы паузы продолжится исходная программа.
Если вы используете компьютер с Windows, вы можете запустить следующий код:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
for (int i=0; i<10; i++) {
cout << "i = " << i << endl;
if (i == 5) {
// Call the pause command
cout << "Calling the pause command\n";
system("pause");
cout << "pause program terminated. Resuming...\n";
}
}
return 0;
}
Вывод — из системы Windows
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
Calling the pause command
Press any key to continue . . .
pause program terminated. Resuming...
i = 6
i = 7
i = 8
i = 9
E:\Programs\sample.exe (process 14052) exited with code 0.
Как вы можете заметить, команда pause действительно была выполнена, когда наше условие if i=5.
После того, как мы нажали Enter, мы завершили программу pause и возобновили наш цикл в программе C++!
Недостатки использования команды system («пауза»)
Основная ошибка system(\pause) заключается в том, что это зависит от платформы. Это не работает в системах Linux/Mac и не является переносимым.
Хотя это работает как своего рода хак для систем Windows, такой подход может легко вызвать ошибки, когда вы пытаетесь запустить код в других системах!
Поэтому я бы предложил другие альтернативные способы приостановки и возобновления работы программы, например, использование обработчиков сигналов.
Заключение
В этой статье мы узнали, как можно использовать команду system(\pause) в C++. Для получения аналогичного контента просмотрите наш учебный раздел по программированию на C++!
Рекомендации
- Страница cppreference.com в system() на C++