码迷,mamicode.com
首页 > 系统相关 > 详细

eclipse 中 scanf 先于printf 出现的问题

时间:2016-05-19 23:08:26      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:

原文:http://blog.csdn.net/linux_wgl/article/details/7430561

 

在写一个C语言时,运行时发现scanf比printf先执行了,在网上找了一下资料,原来是输出缓冲区的问题。解决方法有两个,第一,设置缓冲区为空,即没有缓冲区;第二,每执行printf之后,强制缓冲区。具体方法如下:

  1. 在printf之前添加:setvbuf(stdout,NULL,_IONBF,0);
    设置缓冲区为空。
  2. 在每句printf之后添加:fflush(stdout);

测试代码如下:

方法一:

#include <stdio.h>
 
int main(void) {
    setvbuf(stdout,NULL,_IONBF,0);
 
    char aa[20];
    printf ("input:");
    scanf("%s", aa);
    printf ("output:%s", aa);
    return 0;
}

方法二:

#include <stdio.h>
 
int main(void) {
    char aa[20];
    printf ("input:");
    fflush(stdout);
    scanf("%s", aa);
    printf ("output:%s", aa);
    fflush(stdout);
    return 0;
}

 

 

 


eclipse 中 scanf 先于printf 出现的问题

标签:

原文地址:http://www.cnblogs.com/H-BolinBlog/p/5510475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!