只是爲了好玩,我試着用循環打印kbhit()
,以便程序按下按鍵 無限地打印行,直到再次按下鍵盤。它編譯得很好,當運行時,只是給出了空白屏幕。沒有打印。但是一旦按下按鍵就結束程序。控制檯雖然沒有關閉。kbhit()與雙循環不能很好地工作
#include <stdio.h>
#include <conio.h>
int main()
{
while(1)
{
if(kbhit())
{
while(1)
{
if(kbhit())
{
goto out;
}
printf("Print Ed Infinitum Until Key Press");
}
}
}
out:
return 0;
}
如何解決這個問題?
[不使用goto方法(http://xkcd.com/292/)(另外,你可能是指「循環往復」;)) – Kninnug
沒有,沒有幾個地方,許多用戶在這裏有建議使用goto。我探討了http://stackoverflow.com/questions/245742/examples-of-good-gotos-in-c-or-c和其他幾個帖子。 – user2178841
在這種情況下,您可以通過立即在'if'中立即返回來輕鬆避免'goto'。如果您在退出「goto」之前必須做更多清理工作,可能會更合理。 – Kninnug