0

我第一次使用 Visual C++(也是这门语言的新手)——体验过 C#……所以我有了我在 Visual Studio 中启动的第一个控制台应用程序。

#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int i;

    cin >> i;

    return 0;
}

当我按下回车键时,控制台窗口 - 因此应用程序 - 为什么没有关闭?没有其他输入 - 只需输入...

exit()更重要的是,如果我只是按 Enter键,如何使应用程序退出(不想使用)正确?

4

1 回答 1

2

std::cin 等待您的一个非空字符串,然后尝试将此字符串转换为整数。

当您按 Enter 时,std::cin 只会得到一个空字符串并继续等待一些有效的输入。这是设计使然。std::cin 并不意味着模拟其他交互。

要在按键时终止应用程序,您必须使用特定于操作系统的工具来读取键盘按键。

这是 DOS/console Windows 上“conio.h”中的 kbhit() 函数和 POSIX 系统上的 termio 函数。

从您的来源我可以得出结论,您使用的是 MSVC++ 编译器,因此请尝试替换

std::cin >> i

经过

while(!kbhit()) {}

不要忘记添加

#include <conio.h>

请记住,这是一个特定于 Windows 的解决方案。

于 2012-05-25T23:37:31.217 回答