不工作的数组循环

时间:2015-08-25 14:28:43

标签: c++

为什么这不起作用。我只想加载效果。我刚刚编译了g ++编译器的代码。这需要时间并且只需打印* * * B R E A K * * *。每个字母之间没有区别。

#include <iostream>
using namespace std;

int main()
{
    int wait = 1000000000;
    char text[] = {"* * * B R E A K * * *"};

    for(int i = 0; i < 21; i++)
    {
        cout << text[i];

        for(int j = 0; j < wait; j++)
            ;
    }
}

1 个答案:

答案 0 :(得分:6)

您的等待循环可能已从代码中优化,因为编译器可以看到它没有任何效果。尝试改为nano-sleep,例如

#include <iostream>
#include <unistd.h>

using namespace std; 
int main()
{
   char text[]={"* * * B R E A K * * *"};
   for(int i=0;i<21;i++)
   {
      cerr<<text[i];
      usleep(100000);
   }
}

此外,std::cout是缓冲的,这意味着它会在换行,程序终止或刷新之后才会写入 - 为简单起见,将cout更改为cerr,这是非缓冲....