C ++中的控制台暂停?

时间:2010-12-03 08:41:56

标签: c++ windows console

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

4 个答案:

答案 0 :(得分:35)

最简单的方法就是:

std::cin.get();

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

的信息
system("pause");

但不要使用它。它不便携。

答案 1 :(得分:5)

#include <stdio.h>
// ...
getchar();

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

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

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

答案 2 :(得分:3)

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

答案 3 :(得分:1)

错误的解决方案是使用system("pause"),因为这会产生安全漏洞(目录中的恶意pause.exe!)并且不是跨平台的(暂停仅存在于Windows / DOS上)。

有一个更简单的解决方案:

void myPause() {
    printf("Press any key to continue . . .");
    getchar();
}

这使用符合POSIX的getchar()(请参阅this)。 您可以像这样使用此功能:

int main() {
    ...
    myPause();
}

这有效地防止了控制台闪烁然后退出。