Using the system(“pause”) command in C++
In this article, we’ll take a look at using the system(“pause”) command in C++.
Important Note
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.
#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”).
Example for Linux/Mac
If you are having any Linux/Mac machine, you can try the below code.
#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
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
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 execution of the parent C++ program. Only after the pause program is terminated, will the original program continue.
Example for Windows
If you’re using a Windows machine, you can run the below code:
#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;
}
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.
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++.