如果我尝试在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来缓冲区只有缓冲区。
答案 0 :(得分:2)
setlinebuf是一个非标准函数,需要feature macro。
功能宏可以切换传统上在Unix等环境中使用但尚未达到C标准的功能集。
在代码文件的顶部添加以下行(包括stdio.h
之前)以启用setlinebuf
的声明:
#define _BSD_SOURCE
请注意,可选功能的存在不是强制性的,因此可能无法在您的平台上使用。