C++ freopen函数用法详解

前言

在OI里赛制中

如果没有文件操作或文件操作被注释,等待着你的就是爆零的命运。C和C++的文件操作,一般是用fopen或fstream,我们用freopen,即文件重定向。它的用法其实也挺简单。

函数原型

FILE *__cdecl freopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode,FILE * __restrict__ _File) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;

参数:
_Filename:要打开的文件名。
_Mode:打开方式,同fopen。
_File:一个FILE型指针,可以是stdin(标准输入)或stdout(标准输出)。

好像很复杂的样子。其实就是像这样:

freopen("xxx.in","r",stdin);	//输入文件
freopen("xxx.out","w",stdout);	//输出文件

然后其他的代码按原样写就可以了。

接下来是实例代码:

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
	freopen("a+b.in","r",stdin);
	freopen("a+b.out","w",stdout);
	//以上是模板
	int a,b;
	cin>>a>>b;
	cout<<a+b<<endl;
	return 0;
}

小提示:

在OI赛制比赛调试程序环节,推荐将freopen()函数注释,不然来来回回看text文档就是你的下场!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在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函数在原文档基础上的使用非常简单。它可以通过重新定向文件流的方式,实现在原文档上继续写入的功能。需要注意的是,在使用该函数之前,要确保原文件流已经打开且可用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学废c++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值