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
Before going through the system(“pause”) command, let’s understand what system()
does.
1 2 |
#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.
1 2 3 4 5 6 7 8 |
#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; } |
Possible Output
1 2 3 4 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#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 commandn"; system("pause"); cout << "pause program terminated. Resuming...n"; } } return 0; } |
Output – From Windows System
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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:Programssample.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++ 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 on C++ programming!