C++中的控制台暂停?

RCI*_*CIX 23 c++ windows console

在C#中,您可以使控制台等待输入字符(这对于在程序退出之前能够看到控制台的最后输出非常有用).作为C++的初学者,我不确定它的等价物是什么.有吗?

rek*_*o_t 35

最简单的方法是:

std::cin.get();
Run Code Online (Sandbox Code Playgroud)

您可以在此之前打印"按任意键以继续..."之类的内容.有些人会告诉你

system("pause");
Run Code Online (Sandbox Code Playgroud)

但是不要使用它.它不便携.

  • 请注意,虽然`cin.get()`应该读取单个字符,但是您的终端可能会进行行缓冲,因此在调用`get()`之前必须按Enter键. (8认同)

Mep*_*ane 5

#include <stdio.h>
// ...
getchar();
Run Code Online (Sandbox Code Playgroud)

该函数等待单个按键并返回其(整数)值.

例如,我有一个功能相同System("pause"),但不需要"pause.exe"(这是一个潜在的安全整体,顺便说一句):

void pause()
{
  std::cout << std::endl << "Press any key to continue...";
  getchar();
}
Run Code Online (Sandbox Code Playgroud)

  • 没有`pause.exe`; `pause`本身是Windows shell中的内置命令. (5认同)
  • 好吧,我的印象是命令暂停导致运行整个过程,基本上是程序"暂停".例如,`system("notepad")`(在Windows上)启动notepad,所以这个命令肯定*可以*启动其他可执行文件. (2认同)

Ign*_*ams 3

标准中没有任何内容,也没有跨平台的内容。通常的方法是等待按下<Enter>键,然后丢弃结果。