首页 > 代码库 > 【技巧】freopen()函数在ACM中的应用

【技巧】freopen()函数在ACM中的应用

在做题目的过程当中,我们需要在本机上调试,当然我们可以把测试用例一遍一遍粘贴复制,也经常会遇到测试用例很多的时候,输入和输出混了,还要去找输出和题目当中的对照。另外,有的时候题目给的测试用例太少,需要自己或者队友给想几个临界条件,自己动手多添加几个测试用例,每测一遍都要动手输入的话麻烦又浪费时间。这时候freopen()上场了。
函数名:    freopen()
函数声明:  FILE  *freopen(const char *path,const char *mode,FILE *stream);
所在头文件:#include<stdio.h>
参数说明:
  path  :  文件名,用于存储输入输出的自定义文件名。
  mode  :  文件打开的模式,和fopen中的模式(r 只读 w 可写)相同。
 stream :  流文件。通常使用标准流文件,具体是指 stdin,stdout,stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,默认是屏幕。
通过调用freopen()就可以修改标准流文件的默认值,实现重定向。

例子:

#include <cstdio>
#include <iostream>
using namespace std;

int main()

{

    int a,b;

    freopen("in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取

    freopen("out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中

    while(cin>> a >> b)

        cout<< a+b <<endl; // 注意使用endl

    fclose(stdin);//关闭文件
    fclose(stdout);//关闭文件
    return 0;

}
 







来自为知笔记(Wiz)