少年大学习:freopen

周知所众,在校选/区赛/市赛/省赛中都需要文件读写,那怎么简单地实现呢?当然是使用freopen啦。

话就多说,让我们开始吧:


一、freopen 是什么?

freopen是 C 标准库里的函数,C++ 中可以通过 <cstdio> 或 <bits/stdc++.h> 使用。它的作用是:把某个标准流重定向到指定文件。

函数原型:

FILE* freopen(const char* filename, const char* mode, FILE* stream);

三个参数:

  1. filename:文件名,比如 "sum.in"、"sum.out"。

  2. mode:打开模式,常用 "r" 读、"w" 写。

  3. stream:要重定向的标准流,通常是 stdin 或 stdout。

提示:返回成功时返回流指针,失败返回 NULL。

二、最常用写法

如果题目要求从 sum.in 读入,输出到 sum.out,那就这样写:

#include <bits/stdc++.h>
using namespace std;
int main() {
    freopen("sum.in", "r", stdin);
    freopen("sum.out", "w", stdout);
    return 0;
}

三、总结

如果要用文件就这样写(xxx是文件名)

freopen("xxx.in", "r", stdin);
freopen("xxx.out", "w", stdout);

本地测注释掉freopen即可,千万不要忘了去注释和把输出的stdout写成stdin!!!

2 条评论

  • 1