【问题标题】:How can I terminate an infinite loop in Turbo C?如何终止 Turbo C 中的无限循环?
【发布时间】:2011-08-26 21:53:30
【问题描述】:

我陷入了无限循环。我怎样才能终止这个循环?我尝试使用/按下 Cntrlc 但没有任何反应。我不知道如何阻止它。

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

【问题讨论】:

  • 程序的可移植版本将使用getchar() 而不是非标准的getche(),并将结果存储在int 中而不是char 中。 int ch; while ((ch = getchar()) != EOF) { /* ... */ } 你还需要#include <stdio.h>,而main() 应该是int main(void)。 (可能getche() 做了一些getchar() 没有做的事情;我不熟悉。)

标签: c infinite-loop turbo-c


【解决方案1】:

CTRLBREAK 可能会为此工作。我有一个模糊的回忆,CTRLC 并不总是适用于 Borland 产品。

不过,那很久以前的事了,所以我不得不从很深的记忆中找回它,这可能已经有些褪色了:-)


我的问题是:当有更好且同样便宜的解决方案可用时,为什么还有人使用 Turbo C?像 gcc(例如在 Code::Blocks 中)甚至 Microsoft Visual C Express。

【讨论】:

  • C 语言在逻辑方面很容易学习。基础的一定要懂,因为它是c语言的起源,如果你掌握了,新出现的语言就会很容易上手。
  • 你能给我任何不应该使用 TurboC 的理由吗...我知道这种语言已经过时了。
  • @aerohn,这应该是足够的理由,我认为 :-) language 并没有过时,尽管 Borland 的实现已经过时了。它不符合 gcc 等最新标准,并且在价格上与 gcc 和 MSVC Express 产品相匹配。我更喜欢自己使用更现代的编译器。请记住,我并不是说您应该考虑放弃 C 本身,而只是放弃 Turbo C。
  • TurboC 是一个不错的入门套件。我一直很喜欢borland的产品。我认为当你处于学习语言的早期阶段时,你的编译器是否已经 30 岁并不重要。
  • 在印度,Turbo C++ 3/4.5 是 11 年级(高中)学生学习 C++ 的编译器。对于那些使用现代 IDE 的人来说太糟糕了。 ;)
【解决方案2】:

你需要一个条件来跳出你的 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',或者如果你坚持使用while(1),你可以使用“break”关键字:

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;       

   }
}

【讨论】:

  • 这本来可以的,但我认为 OP 已经开始无条件运行无限循环,想知道如何退出程序并返回 TurboC
【解决方案3】:

如果您只想在 Turbo C 中暂停无限循环,请按 BREAK。如果您想回到 Turbo C 程序的编辑器,请按 CTRL+BREAK。它将返回编辑您的程序。

是的,我试过了,它有效!

【讨论】:

    【解决方案4】:

    CTRL-Break、Break 和 CTRL-C 对我不起作用,但 CTRL-ESC-ESC 可以! (这在 Borland C++ 3.1 中使用几乎相同的代码进行了测试)。

    【讨论】:

      【解决方案5】:

      没有办法停止无限循环。但是,您可以在循环内添加一个导致其中断的条件,或者您可以在循环内调用 exit() 函数,这将终止您的程序。

      【讨论】:

        猜你喜欢
        • 2021-06-30
        • 1970-01-01
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-27
        相关资源
        最近更新 更多