本篇文章主要介绍了"Eclipse下printf和scanf的运行顺序问题",主要涉及到方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
小编按照平时的习惯打了一段c语言代码,发现在scanf处提示错误。 为什么呢?原来这是Eclipse下print...
小编按照平时的习惯打了一段c语言代码,发现在scanf处提示错误。

为什么呢?
原来这是Eclipse下printf和scanf的运行顺序问题。
即输出缓冲区的问题。
解决方案:
方案一:设置缓冲区为空,即没有缓冲区;
在printf之前添加:setvbuf(stdout,NULL,_IONBF,0);设置缓冲区为空。
方案二:每执行printf之后,强制缓冲区。具体方法如下:
在每句printf之后添加:fflush(stdout);
测试代码如下:
1.添加了 setvbuf(stdout,NULL,_IONBF,0);
#include
int main() {
int i = 3;
setvbuf(stdout,NULL,_IONBF,0);
printf("hello\n");
scanf("%i" , &i);
printf("你输入了%i",i);
return 0;
}
2 添加 fflush(stdout);
#include
int main() {
int i = 3;
printf("hello\n");
fflush(stdout);
scanf("%i" , &i);
printf("你输入了%i\n",i);
fflush(stdout);
scanf("%i" , &i);
return 0;
}
以上就介绍了Eclipse下printf和scanf的运行顺序问题,包括了方面的内容,希望对Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_142487.html