在循环C ++中强制输出

时间:2016-11-16 16:02:47

标签: c++ loops io

我在C ++中编写了Raspberry Pi上的交通信号灯并遇到了死胡同。

我使用的是从主代码块中调用的函数,问题是 - 在循环结束时转储所有预期的输出。两者都进入控制台和物理输出。

我已经找到了解决方案,但很快就找到了。

是否有人知道一种强制输出顺序发生的方法或一个阅读它的地方?

void idle()
{
    int allY[]={9,22,13,26};  //output pin numbers
    for(int i=0;i<=10;i++)   // blink X times
    {
        for(int j=0;j<=4;j++)  //all outputs to HIGH
            {
                digitalWrite (allY[j], HIGH);
                cout<<"+";   // output to console for testing
            }

        usleep(900000); //wait

        for (int k=0;k<=4;k++)  // all outputs to LOW
            {
                digitalWrite (allY[k], LOW);
                cout<<"-";
            }
    }
}

FOR FUTURE READERS - SOLUTION

void idle()
{
    int allY[]={9,22,13,26};//output pin numbers
    for(int i=0;i<=10;i++) // blink X times
    {
        for(int j=0;j<=4;j++)//all outputs to HIGH
            {
                digitalWrite (allY[j], HIGH);
                cout<<flush; //flush
            }

        usleep(900000); //wait

        for (int k=0;k<=4;k++)// all outputs to LOW
            {
                digitalWrite (allY[k], LOW);
                cout<<flush;
            }

        usleep(900000); //wait
    }
}

0 个答案:

没有答案