Поиск по сайту:

Использование команды 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++