C++ freopen使用问题

用freopen分别从a.txt和b.txt中读入数据,读完a.txt的再读b.txt的,并且也使用了fclose(stdin),但程序只读到了a.txt而没有读到b.t... 用freopen分别从a.txt和b.txt中读入数据,读完a.txt的再读b.txt的,并且也使用了fclose(stdin),但程序只读到了a.txt而没有读到b.txt,为什么 展开
 我来答
451006071
推荐于2018-04-21 · TA获得超过1332个赞
知道小有建树答主
回答量:368
采纳率:57%
帮助的人:329万
展开全部

我表示没遇到你的问题,我上传的文件里有代码和a.txt b.txt你运行1.exe会发现一起好好的,我这里贴出代码:

#include <stdio.h>
#include <stdlib.h>


int main(void)
{
     char ch;
     freopen("a.txt","rt",stdin);

     printf("in a.txt:");
     while(!feof(stdin))
     {
         ch = fgetc(stdin);
         putchar(ch);
     }

     printf("\n\n\nin b.txt:");
     freopen("b.txt","rt",stdin);
     while(!feof(stdin))
     {
         ch = fgetc(stdin);
         putchar(ch);
     }
     putchar('\n');
     freopen("CON","r",stdin);
     system("pause");
     return 0;
}

我要说明是最后一句,将sdin重定向回去控制台的标准输入,不然的话system("pause")无法做到暂停的效果。

运行效果:


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式