首页 > 解决方案 > 每秒打印数字

问题描述

#include <stdio.h>
#include <wiringPi.h>
#include <softPwm.h>


int main(void)
{
    wiringPiSetupGpio();
    
    for(int i = 0 ; i <50; i++)
    {   
        if ( i%10 == 1)
        {
            printf("\n");
        }
    
        printf("%d  ", i);
        
        delay(1000);
        
    }
    
    
    return 0;
} 

我在 rasberry pi 环境中工作。我想每 1 秒打印一个数字。但是这段代码并没有一个一个地打印一个数字,而是每 10 秒打印 10 个数字。此代码一次给出 10 个数字。有什么问题??

标签: craspberry-pi

解决方案


默认情况下,标准输出通道是行缓冲的。这意味着在打印换行符之前,发送到标准输出的数据不一定会出现。

如果您调用fflush(stdout),将立即打印任何缓冲的输出。

printf("%d  ", i);
fflush(stdout);

推荐阅读