Raspberry Pi: printf() 不适用于 wiringPi

Raspberry Pi: printf() doesn't work with wiringPi

我正在尝试使用 wiringPi 的简单代码,如下所示:

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

int main(void){
    int i;

    wirintPiSetup();
    pinMode(0,OUTPUT);   //a single LED
    pinMode(8,INPUT);    //tactile switch

    for(;;){
        delay(500);
        //push tactile switch and LED is turning on
        if(digitalRead(8)) digitalWrite(0,0);
        else digitalWrite(0,1);
        printf("%d",digitalRead(8));
    }
}

我预计 printf() 的结果会输出到控制台, 但它不起作用。 printf() 不能 运行 与 wiringPi API 同时使用?

编译时没有警告。 CPU 消耗始终低于 4%。 运行宁 Raspbian。

感谢您的宝贵时间!

stdout 默认情况下通常是 行缓冲 ,这意味着它会尝试将数据写入基础文件直到换行。但是由于您从不打印换行符,因此 stdout 只会缓冲您的文本,直到用完 space.

您可以通过在格式字符串中添加换行符(即 "%d\n")或在打印后在 stdout 上调用 fflush 来解决此问题。