为什么程序会在一台计算机上而不是另一台计算机上留下循环?

时间:2019-01-09 17:58:43

标签: c++ visual-studio

我在计算机上进行了一个简单的循环,它运行良好。我在笔记本电脑(都是Visual Studio 2017)上写了相同的程序,但是循环执行一次后就不再重复了。

我还注意到,当我设置发布配置(而不是调试)时,程序运行正常。

有人可以告诉我该怎么办吗?

整个程序:

#include "pch.h"
#include <iostream>
#include <conio.h>

int main()
{
    while(char x = _getch())
    {
        std::cout << x;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:1)

来自_getch()的MSDN page

  

读取功能键或箭头键时,每个功能必须调用两次;第一次调用返回0或0xE0,第二次调用返回实际的密钥代码。

这说明了为什么您的代码在一次迭代后退出循环。