未定义引用' setlinebuf'

时间:2016-08-16 08:51:58

标签: c printf buffer scanf

如果我尝试在Windows 10上的TDM_GCC下运行以下简单代码,

#include<stdio.h>

 int main(){

  double input;

   setlinebuf(stdout);

    printf("Enter Your Input -");
    scanf("%If", &input);
    printf("ENtered name is %f", input);

 return 0;
}

它编译(通过gcc)一个错误,该错误表示 - 未定义引用&#39; setlinebuf&#39;。我使用setlinebuf来缓冲区只有缓冲区。

1 个答案:

答案 0 :(得分:2)

setlinebuf是一个非标准函数,需要feature macro

功能宏可以切换传统上在Unix等环境中使用但尚未达到C标准的功能集。

在代码文件的顶部添加以下行(包括stdio.h之前)以启用setlinebuf的声明:

#define _BSD_SOURCE 

请注意,可选功能的存在不是强制性的,因此可能无法在您的平台上使用。