调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。
使用freopen函数可以解决测试数据输入问题,避免重复输入

函数名:freopen
声明:FILE *freopen( const char *path, const char *mode, FILE *stream );
所在文件: stdio.h
参数说明:
path: 文件名,用于存储输入输出的自定义文件名。
mode: 文件打开的模式。
stream: 一个文件,通常使用标准流文件。
返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。(一般可以不使用它的返回值)
功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。
标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。
VC下调试“计算a+b”的程序举例。
C语法:
#include <stdio.h>
int main() {
int a,b;
freopen(“debug\in.txt”,“r”,stdin); //输入重定向,输入数据将从in.txt文件中读取
freopen(“debug\out.txt”,“w”,stdout); //输出重定向,输出数据将保存在out.txt文件中
while(scanf("%d %d",&a,&b)!=EOF)
printf("%d\n",a+b);
fclose(stdin);//关闭文件
fclose(stdout);//关闭文件
return 0;
}

C++语法
#include <stdio.h>
#include <iostream.h>
int main() {
int a,b;
freopen(“debug\in.txt”,“r”,stdin); //输入重定向,输入数据将从in.txt文件中读取
freopen(“debug\out.txt”,“w”,stdout); //输出重定向,输出数据将保存在out.txt文件中
while(cin>>a>>b)
cout<<a+b<<endl; // 注意使用endl
fclose(stdin);//关闭文件
fclose(stdout);//关闭文件
return 0;
}

freopen(“debug\in.txt”,“r”,stdin)的作用就是把标准输入流stdin重定向到debug\in.txt文件中,这样在用scanf或是用cin输入时便不会从标准输入流读取数据,而是从in.txt文件中获取输入。只要把输入数据事先粘贴到in.txt,调试时就方便多了。
类似的,freopen(“debug\out.txt”,“w”,stdout)的作用就是把stdout重定向到debug\out.txt文件中,这样输出结果需要打开out.txt文件查看。

    需要说明的是: 1. 在freopen("debug\\in.txt","r",stdin)中,将输入文件in.txt放在文件夹debug中,文件夹debug是在VC中建立工程文件时自动生成的调试文件夹。如果改成freopen("in.txt","r",stdin),则in.txt文件将放在所建立的工程文件夹下。in.txt文件也可以放在其他的文件夹下,所在路径写正确即可。 2. 可以不使用输出重定向,仍然在控制台查看输出。 3. 程序调试成功后,提交到oj时不要忘记把与重定向有关的语句删除。

freopen读取文件相关推荐

  1. TensorFlow csv读取文件数据(代码实现)

    TensorFlow csv读取文件数据(代码实现) 大多数人了解 Pandas 及其在处理大数据文件方面的实用性.TensorFlow 提供了读取这种文件的方法. 前面章节中,介绍了如何在 Tens ...

  2. python读取文件r_python read文件的r和rb的区别

    r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据. 'w':表示要向文件写入数据,并截断以前的内容 'a':表示要向文件 ...

  3. 如何有效的使用C#读取文件

    你平时是怎么读取文件的?使用流读取.是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读 ...

  4. C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组

    转自:http://hi.baidu.com/ctralt/blog/item/cde79fec87f841302697911c.html fstream提供了三个类,用来实现c++对文件的操作.(文 ...

  5. 怎么读取java文件,Java怎么读取文件

    当前位置:我的异常网» J2SE » Java怎么读取文件 Java怎么读取文件 www.myexceptions.net  网友分享于:2013-12-20  浏览:60次 Java如何读取文件? ...

  6. python中读取文件过程中seek()函数的使用

    python中读取文件过程中seek()函数的使用 目录 概述: 语法: 参数: 返回值: 实例: 概述: seek() 方法用于移动文件读取指针到指定位置. 语法: seek() 方法语法如下: 文 ...

  7. mfc如何判断读到文件尾_C++ 判断读取文件尾

    主要在于eof()不只是读取文件的最后一个字符,它会接着往后读取,如果此函数返回ture时,则此时返回的文件结束符0xFF才是真正的结尾. 具体内容如下: 在使用C/C++读文件的时候,一定都使用过e ...

  8. python open方法下file模块_python-linecache模块读取文件用法

    python-linecache模块读取文件用法详解 linecache模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行. 1.linecache.getline ...

  9. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...

    [单选题]李明在他所属的公司工作五年,每天都很认真地处理繁杂的事情,同事们都夸他认真,但是依然没有建树,这是因为: [多选题]品牌标志的作用表现在 [单选题]新产品开发的第一个阶段是_______. ...

最新文章

  1. LeetCode简单题之将所有数字用字符替换
  2. ali arthas 火焰图_带你上手阿里开源的 Java 诊断利器:Arthas
  3. 以太坊知识教程------交易
  4. flash cs4 java运行时_加载外部数据时Flash CS4 IDE内部缓存
  5. python中文注释
  6. 大数据之-Hadoop3.x_MapReduce_outputformat概述---大数据之hadoop3.x工作笔记0120
  7. 分析app和wap手机网站的不同
  8. 资源图与死锁定理的灵活运用
  9. oracle extract类型,Oracle中extract()函数
  10. MySQL memo优化_mysql memo
  11. 初识KnockoutJS
  12. 金融分析与风险管理——期权BSM模型
  13. Win10 制作Ubuntu U盘启动盘
  14. rtsp流媒体播放器----ffmpeg相关代码走读(一)
  15. Turtlebot3 buger在仿真环境下建图导航
  16. 电脑开机为什么会出现黑屏
  17. 一些可以参考的文档集合7
  18. ibm服务器状态,检查IBM Director服务器用户和登录状态
  19. 学生管理系统(完整版)
  20. 2022华为杯研究生数学建模竞赛B题方案及赛后总结:方形件组批优化问题

热门文章

  1. Laravel orm 观察者模式理解observe
  2. git系列之revert回滚
  3. Docker——命令篇
  4. 9、国内代码托管中心-码云
  5. ios https 单项认证 双向认证 以及服务端配置
  6. 树状数组的基本用法(板子)
  7. 外挂屡次作怪,反外挂如何奇招百出?
  8. Ubuntu桌面不显示Desktop里的文件(Ubuntu桌面显示的是home文件夹里的文件)怎么办
  9. New Concept English3 Lesson 3. An unknown Goddess【精讲学习笔记】
  10. Python 之 @property