C++ freopen()函数使用注意事项

freopen()能读取文件中的内容

当使用freopen()读取多个文件时,每读取完一个文件后,要使用cin.clear()清空流,否则即使应用了if,也不会显示文件打开失败;或是即使运用了fclose(),也不会读取下一个文件。

当使用freopen()读取完文件后还需要读取控制台输入的指令时,就要使用freopen("CON","r",stdin);来返回控制台,否则,其不会读取控制台命令。

if(freopen("input.txt","r",stdin)==NULL)
{
cout<<"文件打开失败"<<endl;
}
fclose(stdin);
cin.clear();
freopen("CON","r",stdin);

写文件同理:

//freopen("out.txt","W",stdout);//写文件
if(freopen("out.txt","W",stdout))==NULL)
{
cout<<"文件打开失败"<<endl;
}
fclose(stdin);
cin.clear();
freopen("CON","r",stdin);

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在C语言中,freopen函数用于重新定向文件流。具体而言,它可以将一个已经打开的文件流与另一个文件关联起来,替换原来与该文件流相关的文件。 在继续写原文档之前,我们需要了解该函数使用方法。freopen函数的原型如下: ```c FILE *freopen(const char *filename, const char *mode, FILE *stream); ``` 其中,`filename`是一个指向字符串的指针,表示要关联的文件的路径。`mode`也是一个指向字符串的指针,表示打开文件的模式,如"r"表示只读打开,"w"表示写入打开,"a"表示以追加方式打开等。`stream`是一个文件流指针,表示要重新定向的文件流。 在原文档基础上继续写的过程中,我们可以使用freopen函数来修改文件流的关联。假设我们现在有一个已经打开的文件流`file`,我们希望将其关联到另一个文件"new_file.txt"上,并以写入方式打开。可以按照如下步骤完成: 1. 包含头文件`stdio.h`,以便使用freopen函数。 2. 在原文档中,找到与`file`相关的部分,确定要继续写入的位置。 3. 在继续写之前,调用`freopen("new_file.txt", "w", file)`,将文件流`file`重新定向到"new_file.txt"上,并以写入方式打开。 4. 然后,继续在文件流`file`上进行写入操作。 通过以上步骤,我们成功将文件流重新定向到了"new_file.txt"上,并在原文档的基础上继续写入。这可以帮助我们实现某些特定的需求,如在一个已经打开的文件中追加内容等。 总之,freopen函数在原文档基础上的使用非常简单。它可以通过重新定向文件流的方式,实现在原文档上继续写入的功能。需要注意的是,在使用函数之前,要确保原文件流已经打开且可用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值