当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。 函数名:freopen
声明:FILE *freopen( const char *path, const char *mode, FILE *stream );
所在文件: stdio.h
参数说明:
path: 文件名,用于存储输入输出的自定义文件名。
mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。
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. 利用freopen()函数和fc命令简化程序调试

    大家在参加ACM比赛或者参加c/c++实验技能竞赛的时候,如果遇到大量的输入和大量的输出时,调试起来很不方便.一来如果结果不正确的话,需要重复输入大量数据:二来如果大量输出的话,得仔细检查输出结果与正 ...

  2. c语言 freopen txt_C语言:freopen函数

    当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入 ...

  3. c++freopen函数_使用示例的C语言中的freopen()函数

    c++freopen函数 C语言中的freopen()函数 (freopen() function in C) Prototype: 原型: FILE* freopen(const char *str ...

  4. C语言-freopen函数输入简单使用举例

    C语言中使用freopen函数解决测试数据输入问题,避免重复输入,不失为一种简单而有效的手段 下面举个简单的例子,学会后就可以使用了 freopen函数用法形式一:freopen("文件名. ...

  5. linux freopen函数

    编程之路刚刚开始,错误难免,希望大家能够指出. 有些需求需要我们不断的输入数据很庞大,如果我们安装常规方法不断地在终端输入值很麻烦(前提是输入的数据是固定的,并不会随程序的运行而改变),这个时候我们就 ...

  6. freopen()函数

    freopen函数通过实现标准I/O重定向功能来访问文件,而fopen函数则通过文件I/O来访问文件. freopen函数在算法竞赛中常被使用.在算法竞赛中,参赛者的数据一般需要多次输入,而为避免重复 ...

  7. freopen函数详解

    通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量 ...

  8. C语言中freopen函数

    freopen是被包含于C标准库头文件<stdio.h>中的一个函数,用于重定向输入输出流.该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的. 函数名:fre ...

  9. C语言:freopen函数

    当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入 ...

  10. freopen函数的使用

    freopen函数的使用 当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功 ...

最新文章

  1. 用Macbook-苹果系统写代码出现显示问题Text input context does not respond to _valueForTIProperty:
  2. 蚂蚁上市 P8 身价超亿,丢给我这几个牛逼的公众号
  3. android音视频工程师,音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)...
  4. 开发中使用UEditor编辑器的注意事项
  5. 云服务如何搭建数据库_【MySQL8.0.18】阿里云服务器上搭建MySQL数据库
  6. SDUT 3377 数据结构实验之查找五:平方之哈希表
  7. qq接入和分享android,Android社交登录授权、分享SDK,支持微信、微博和QQ
  8. 企业实战03:Oracle数据库_用户和表空间
  9. CVPR 2020 Workshop on Continual learning in Computer Vision 征稿
  10. HDOJ 2066 HDU 2066 一个人的旅行 ACM 2066 IN HDU
  11. Using a Comparison Function for the Key Type
  12. 【Redis】Redis中使用Lua脚本
  13. Oracle 11g Rac搭建
  14. IDEA中使用SVN IDEA配置SVN步骤(git也是)
  15. java 同步和异步_Java中的同步与异步详细介绍
  16. opencv安装教程
  17. win7升级win10时报0x80072F8F - 0x20000错误处理
  18. 四、SolrCloud的安装
  19. canvas用于绘制视频
  20. 如何避免成为背锅侠?

热门文章

  1. vue渲染.md文件
  2. 怎么用一分钟,画出一份思维导图?
  3. 计算机病毒危害性分析,计算机病毒危害评析(共2220字).doc
  4. QML中文手册(持续更新...建议收藏)
  5. 中专计算机应用基础课课程标准,计算机应用基础课程标准
  6. oracle怎样导入文件,oracle导入文本文件
  7. 深圳学区房购买-查查吧深圳学区地图
  8. c语言中.h文件和.cpp文件解析
  9. pip 安装scipy的一种方法
  10. java mina性能_高性能Java网络框架 MINA