原网址:here

有时用了freopen,怎么搞都不能从控制台输入输出了,相当郁闷。于是总结了一下用freopen后恢复到控制台的方法。

方法一、

        在freopen前,调用dup把标准输出的文件描述符保存起来

              old = _dup( 1 );

             FILE *fp=freopen("a.out","w",stdout);

             fflush(fp);//将输出缓冲区清空
             _dup2( old, 1 );//恢复标准输出文件描述符

             printf("方法一 OK!\n");

方法二、(适用在windows下)

            FILE *fp=freopen("a.out","w",stdout);

            fflush(fp);//将输出缓冲区清空

            freopen( "CON", "w", stdout ); //定向输出到控制台

方法三、(使用在Linux下)

           FILE *fp=freopen("a.out","w",stdout);

          fflush(fp);//将输出缓冲区清空

           freopen("/dev/tty", "w", stdout); 
           freopen("/dev/tty", "r", stdin); 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-20
  • 2022-01-03
  • 2021-05-13
  • 2021-08-22
猜你喜欢
  • 2022-12-23
  • 2021-06-29
  • 2021-05-14
  • 2021-12-25
  • 2021-09-16
相关资源
相似解决方案