URL: https://www.progressiverobot.com/system-pause-command-c-plus-plus/

In this article, we'll take a look at using the system("pause") command in C++.

Before going through this article, note this the system("pause") command is _only_ available in Windows Systems.

This means that you cannot use this from any Linux / Mac machine.

The system() command

system illustration for: The system() command

Before going through the system("pause") command, let's understand what system() does.

				
					#include <cstdlib>

int system(const char *command);
				
			

The system() function performs a call to the Operating System to run a particular command.

Note that we must include the <cstdlib> header file.

This is very similar to opening a terminal and executing that command by hand.

For example, if you want to use the "ls" command from Linux, you can use system("ls").

If you are having any Linux/Mac machine, you can try the below code.

				
					#include &lt;iostream&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main() {
    // Try the "ls -l" command from your Linux / Mac machine
    int ret = system("ls -l &gt; test.txt");
    return 0;
}
				
			

Possible Output

				
					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
				
			

Now that we're a bit clear on what system() can do, let's look at the system("pause") command.

Using system("pause") command in C++

This is a Windows-specific command, which tells the OS to run the pause program.

This program waits to be terminated, and halts the exceution of the parent C++ program. Only after the pause program is terminated, will the original program continue.

If you're using a Windows machine, you can run the below code:

				
					#include &lt;iostream&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main() {
    for (int i=0; i&lt;10; i++) {
        cout &lt;&lt; "i = " &lt;&lt; i &lt;&lt; endl;
        if (i == 5) {
            // Call the pause command
            cout &lt;&lt; "Calling the pause command\n";
            system("pause");
            cout &lt;&lt; "pause program terminated. Resuming...\n";
        }
    }
    return 0;
}
				
			

Output – From Windows System

				
					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.
				
			

As you can observe, the pause command was indeed executed when our if condition i = 5.

After we hit enter, we terminated the pause program, and resumed our [loop in C++](/community/tutorials/loops-in-c-plus-plus) program!

Disadvantages of using the system("pause") command

The main pitfall of system("pause") is that this is platform specific. This does not work on Linux/Mac systems, and is not portable.

While this works as a kind of a hack for Windows systems, this approach may easily cause errors, when you try to run the code on other systems!

Therefore, I would suggest some other alternative ways to pause and resume a program, such as using signal handlers.

Conclusion

In this article, we learned how we could use the system("pause") command in C++. For similar content, do go through our [tutorial section](/community/tutorials/c-plus-plus) on C++ programming!

References