printf 遇到bash重定向

      在printf之前添加:setvbuf(stdout,NULL,_IONBF,0);设置缓冲区为空。

  • 在每句printf之后添加:fflush(stdout);

方法一:

1
2
3
4
5
6
7
8
9
10
11
  #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;
}

 

1
2
3
4
5
6
7
8
9
10
11
  #include <stdio.h>
 
int main(void) {
    char aa[20];
    printf ("input:");
    fflush(stdout);
    scanf("%s", aa);
    printf ("output:%s", aa);
    fflush(stdout);
    return 0;
}

 

posted @ 2016-03-03 19:26  djiankuo  阅读(279)  评论(0编辑  收藏  举报