[英]How the code gets to the next step only when i press the enter key in c++ (Thread)
我在互聯網上看到以下代碼
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()
從庫和操作系統中的標准緩沖中讀取。 在輸入enter之前,通常不會從控制台設備上的讀取返回操作系統。 它們支持命令行編輯,並且需要Enter鍵來完成輸入。
getchar()讀取輸入的單個字符。
但是,您的終端可能會在輸入上進行行緩沖,直到您按下Enter鍵,才將輸入發送到程序。
因為enter
輸入一個\\n
,它將被解釋為EOF
因為命令行會認為這是用戶輸入的結尾,並且getChar()
試圖從該流中讀取單個字符緩沖區,因此如果您只是按enter
而不返回任何內容,在其前面輸入字符,請參閱msdn: http : //msdn.microsoft.com/zh-cn/library/5231d02a%28v=vs.71%29.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.