在C++中使用system(" pause")命令

时间:2020-02-23 14:30:07  来源:igfitidea点击:

在本文中,我们将介绍如何在C++中使用system(" pause")命令。

在阅读本文之前,请注意,只有在Windows系统中才可以使用system(" pause")命令。

这意味着您不能在任何Linux/Mac计算机上使用它。

system()命令

在执行system(" pause")命令之前,让我们了解一下system()的作用。

#include <cstdlib>

int system(const char *command);

system()函数执行对操作系统的调用以运行特定命令。

注意,我们必须包含 &lt;cstdlib>头文件。

这非常类似于打开终端并手动执行该命令。

例如,如果要在Linux中使用" ls"命令,则可以使用" 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")命令。

在C++中使用system(" pause")命令

这是Windows特有的命令,它告诉OS运行" 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.

如您所见,当if条件i = 5时,确实执行了stop命令。

按下回车键后,我们终止了暂停程序,并在C++程序中恢复了循环!

使用system(" pause")命令的缺点

系统的主要缺陷("暂停")是特定于平台的。
这在Linux/Mac系统上不起作用,并且不可移植。

尽管这对于Windows系统来说是一种hack,但是当您尝试在其他系统上运行代码时,这种方法很容易导致错误!

因此,我建议使用其他替代方法来暂停和恢复程序,例如使用信号处理程序。