分类：电脑/网络-程序设计-C/C++
问题：！kbhit()的意思？while（1）{while（！kbhi 
while（1）{while（！kbh（）） m＝getch（）； if（m＝＝‘s’）     {    break；      } }   在没键按下和有键下的区别。
回答：  kbhit用来检测是否有按键,有则返回-1,没有则返回0. 如果想知道按下了什么键,应该用getch()来获取(键值已经输入缓冲区,getch从缓冲区中取得而非再从键盘输入). 你给出的程序应该是一个不会正常退出的死循环吧(不管按什么键),因为, while (!kbhit()) m = getch(); getch()会中断等待你从键盘输入,这个输入不会被kbhit检测到(此时中断处理中),而待中断处理完后(输入一个字符后)再转到kbhit,而此时又没有输入马上再次转到getch(). 我给一个我见过的用法:#include <stdio.h>void main(){    char m;    int i = 0;    while (1)    {        while (!kbhit())        {            i++;            if (i == 8)               i = 0;            sound(i);        }        m = getch();        printf("m == %c\n", m);        if (m == 's')        {           nosound();           break;        }    }getch();}