system PAUSE
Наверняка где-то в примерах программ на С++ вы встречали что-то типа этого:
int main()
{
cout << "Hello, World!!!" << endl;
system("PAUSE");
return 0;
}
Обычно мало кто задумывается, что здесь делает и зачем строка system("PAUSE");. А я вот задумался ))) И решил, что это может быть любопытно не только мне, поэтому расскажу об этом подробно(есть ещё видео в конце статьи).
Итак, стандартная функция system() вызывает командный интерпретатор
(это cmd.exe или command.com). Синтаксис функции:
int system(const char* command);
Функция возвращает определённое реализацией языка значение (обычно это то, что возвращает вызванная программа).
Если в качестве параметра передаётся нулевой указатель, то функция проверяет наличие в системе командного интерпретатора. Если его нет (или не найден), то будет возвращён 0, а есть он есть, то возвращаемое значение будет не нулевым.
Так что вызов функции с параметром "PAUSE" выполнит следующие действия:
- Запустит командный интерпретатор
- Выполнит команду
PAUSE
То есть выведет сообщение “Для продолжения нажмите любую клавишу…” и приостановит выполнение программы до тех пор, пока пользователь не нажмёт клавишу.
Разумеется, таким образом можно выполнять не только команду PAUSE. Так можно выполнять любые команды, которые поддерживаются интерпретатором. Например, MKDIR - создаёт каталог, DIR - выводит на экран содержимое текущего каталога ну и так далее.
Кроме того, так можно запускать внешние программы. Например:
system("calc");
запустит стандартный калькулятор Windows.
Ну и напоследок ложка дёгтя. Поскольку эта функция вызывает стандартный командный интерпретатор Windows, то она работает только в Windows. Так что если вы пишите программу для другой операционной системы, то воспользоваться этой функцией не получится.