只有当我在 c++ 中按 Enter 键(线程)时,代码如何进入下一步



>我在互联网上看到以下代码

DWORD qThreadID;
HANDLE hThread = CreateThread(0, 0, ThreadFn, &uiCounter, 0, &qThreadID);
// Loop until the user enters 'q'
char cChar = ' ';
while (cChar != 'q') {
    cout << uiCounter << endl;
    cChar = (char)getchar();
}

按键事件"Enter"如何工作?(当我调试它时,除了按"Enter"之外,没有其他按键功能起作用)谢谢

getchar()从标准 in 读取,这是缓冲的,两者都在库和操作系统中。 通常的操作系统不会从读取中返回控制台设备,直到输入输入;它们支持命令行编辑,并需要 Enter 键来完成输入。

getchar() 读取输入的单个字符。

但是,您的终端可能会对输入进行线路缓冲,在您按回车键之前,不会将任何输入发送到您的程序。

因为enter输入了一个n,该将被解释为EOF因为命令行会认为这是用户输入的结束,并且getChar()正在尝试从此流中读取单个字符缓冲区,因此如果您只是按enter而不在其前面输入字符,则不会返回任何内容, 请参阅 MSDN: http://msdn.microsoft.com/en-us/library/5231d02a%28v=vs.71%29.aspx

最新更新