我在互联网上看到以下代码
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”如何处理? (当我调试它除了按“输入”按下没有其他按键功能工作) 感谢
答案 0 :(得分:3)
getchar()
从标准输入读取,缓冲在两者中
库和操作系统。通常的操作系统不会从读取中返回
控制台设备,直到输入;他们支持命令行
编辑,并要求输入键来完成输入。
答案 1 :(得分:1)
getchar()读取输入的单个字符。
但是,您的终端可能会对输入执行行缓冲,在您按Enter键之前不会向您的程序发送任何输入。
答案 2 :(得分:0)
因为enter
输入的\n
将被解释为EOF
,因为命令行会认为这是用户输入的结束,而getChar()
正在尝试阅读来自此流的单个字符缓冲区,因此如果您只是按enter
而不输入前面的字符,则不会返回任何内容,请参阅msdn:http://msdn.microsoft.com/en-us/library/5231d02a%28v=vs.71%29.aspx