Raspberry Pi:printf()不适用于wiringPi

Nag*_*tch 2 c printf gpio raspberry-pi

我正在尝试使用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));
    }
}
Run Code Online (Sandbox Code Playgroud)

我期望printf()的结果输出到控制台,但它不起作用.printf()无法与wiringPi API同时运行?

编译时没有警告.并且CPU消耗总是低于4%.在Raspbian上运行.

谢谢你的时间!

Dre*_*wen 6

stdout默认情况下是行缓冲,这意味着它会尝试将数据写入底层文件,直到换行.但是,由于您从不打印换行符,stdout因此只会缓冲文本,直到空间不足为止.

您可以通过在格式字符串(即或者加入新行解决这个问题"%d\n"),或致电fflushstdout打印.