-1

您可能已经在很多地方看到“正在加载... ”,其中 3 个点(或更多),即。“...”,先一个一个出现,然后显示所有点后消失,又一个一个出现(所以,总共2次)退出。

详细说明:-

阶段1:

正在加载。

第 2 阶段:

加载中..

第三阶段:

正在加载...

然后,它重复第二次,然后终止!

所以,为此我准备了一个 C++ 程序,它的源代码是:

#include <iostream.h>
#include <time.h>
#include<dos.h>
int main()
{
    cout << "Loading";
    cout.flush();
    for (;;) {
        for (int i = 0; i < 3; i++) {
            cout << ".";
            cout.flush();
            sleep(1);
        }
        cout << "\b\b\b   \b\b\b";
    }

    return 0;
}

这个程序没有终止。它不会停止!我如何编辑它以使其终止?

请发布Turbo C++ Compiler支持的代码,因为我不太了解 ANSI C++!:P

注意:这不是一个重复的问题,所以不要将其标记为重复!!!

提前致谢!:)

4

4 回答 4

1

它重复第二次,然后终止

你不需要2在程序中的某个地方来做到这一点吗?

也许在某个地方for (;;)?与您程序中的其他类似for...

几个反问句:

  • 你觉得有什么for (;;)作用?
  • 为什么你认为限制自己使用 Turbo C++ 编译器是个好主意?
于 2013-06-16T11:29:54.423 回答
0

你写for(;;)的。为什么会终止?它是一个无限循环。

如果你希望外循环只运行 2 次,为什么不for(int j = 0; j < 2; ++j){other loop}

于 2013-06-16T11:29:52.273 回答
0
#include <iostream.h>
#include <time.h>
#include<dos.h>
int main()
{
    cout << "Loading";
    cout.flush();
    //The outer "for" didn't stop in your case, use this:
    for (int iterations = 0; iterations < 2; ++iterations) {
        for (int i = 0; i < 3; i++) {
            cout << ".";
            cout.flush();
            sleep(1);
        }
        cout << "\b\b\b   \b\b\b";
    }

    return 0;
}
于 2013-06-16T11:34:59.183 回答
0

你至少有两个选择:

  1. 替换for(;;)

    for(int j=0; j < 2; ++j) { /*inner loop here*/ }

  2. 保持for(;;)原样,但改为执行以下操作:

    int loopcount = 0; for(;;) /* your loop */ { /* add this after inner loop */ ++loopcount; if(loopcount > 1) break; }

于 2013-06-16T11:35:23.183 回答