2011-05-17 64 views
3

我陷入了無限循環。我怎樣才能終止這個循環?我試圖使用/按Cntrlc但沒有任何反應。我不知道如何阻止它。如何在Turbo C中終止無限循環?

main() 
{ 
    while (1) 
    { 
      char ch; 
      printf("Enter a character: \n"); 
      ch = getche(); 
      printf("\nThe code for %c is %d.\n", ch, ch); 
    } 
} 
+0

程序的可移植版本將使用'getchar()'而不是非標準'getche()',並將結果存儲在'int'而不是'char'中。 'int ch; while((ch = getchar())!= EOF){/ * ... * /}'您還需要'#include ','main()'應該是'int main(void)'。 (可能'getche()'做了一些'getchar()'不能用的東西;我對它不熟悉。) – 2014-12-03 16:41:47

回答

6

CTRLBREAK可能會爲這項工作。我有一個模糊的回憶,CTRLC並不總是與Borland產品一起工作。

雖然,很久以前的事,所以我不得不檢索從非常深刻的記憶,這可能有所消退:-)


我對你的問題是:爲什麼還有人使用Turbo C的時候有更好更便宜的解決方案嗎?像gcc(比如在Code :: Blocks中)甚至是Microsoft Visual C Express。

+0

當談到邏輯時,C語言很容易學習。你必須知道基本的,因爲它是c語言的起源,如果你已經掌握了它,那麼出現的新語言將很容易使用。 – aer 2011-05-17 06:10:59

+0

你可以給我任何理由爲什麼我不應該使用TurboC ...我知道這種語言已經過時。 – aer 2011-05-17 06:35:08

+1

@aerohn,這應該是足夠的理由,我會想:-)儘管Borland的實現是_language_,但它並沒有被廢棄。它不符合像gcc這樣的最新標準,並且它與gcc和MSVC Express產品的價格相匹配。我更喜歡自己使用更現代的編譯器。請記住,我並不是說你應該考慮從C本身開始,只是Turbo C. – paxdiablo 2011-05-17 07:44:20

1

你需要一個條件來打破你的while循環。

這麼喜歡,

main() 
{ 
    char ch = ' '; 
    while (ch != 'q') 
    { 

     printf("Enter a character: \n"); 
     ch = getche(); 
     printf("\nThe code for %c is %d.\n", ch, ch); 
    } 
} 

會爆發,如果輸入的字符是 'Q',或者如果你堅持一段時間(1),你可以使用 「破發」 的文章:

main() 
{ 

    while (1) 
    { 
     char ch; 
     printf("Enter a character: \n"); 
     ch = getche(); 
     printf("\nThe code for %c is %d.\n", ch, ch); 

     if (ch == 'q') 
     break;  

    } 
} 
+0

這會起作用,但我認爲OP已經開始運行一個無條件循環,沒有條件,並想知道如何退出程序並返回到TurboC – 2017-08-07 04:14:10

-1

如果您想暫停Turbo C中的無限循環,請按BREAK。如果您想回到Turbo C的編輯器,請按CTRL + BREAK。它將返回到編輯您的程序。

是的,我試過這個,它的工作原理!

1

CTRL-Break,Break和CTRL-C對我不起作用,但是CTRL-ESC-ESC沒有! (這在Borland C++ 3.1中用幾乎相同的代碼進行了測試)。

+0

其實,只是ESC-ESC的作品! – Dave 2016-12-16 19:51:21

-2

沒有辦法阻止無限循環。但是,您可以在循環內部添加一個條件以使其中斷,或者可以在循環內調用exit()函數,這會終止程序。