Sweety

Practice makes perfect
随笔 - 620, 文章 - 0, 评论 - 2, 阅读 - 20万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

freopen文件操作后控制台输入输出

Posted on   蓝空  阅读(788)  评论(0编辑  收藏  举报

原网址: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); 

努力加载评论中...
点击右上角即可分享
微信分享提示