当我们求解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

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

#include

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<

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时不要忘记把与重定向有关的语句删除。

c语言 freopen txt_C语言:freopen函数相关推荐

  1. c语言 freopen txt_C语言文件操作函数freopen详解

    C语言文件操作函数freopen详解 今天做USACO 用到了文件的操作. 之前做USACO只是格式化的.些 写 freopen("xxx.in","r",st ...

  2. c语言 freopen txt_C语言文件操作函数freopen详细解析

    今天做USACO  用到了文件的操作. 之前做USACO只是格式化的些 写  freopen("xxx.in","r",stdin)  和"freop ...

  3. c语言 freopen txt_C语言freopen()函数

    函数名: freopen 功 能: 替换一个流 用 法: FILE *freopen(char *filename, char *type, FILE *stream); 程序例: #include ...

  4. c语言 freopen txt_C语言的文件操作 freopen

    今天做USACO  用到了文件的操作. 之前做USACO只是格式化的些 写  freopen("xxx.in","r",stdin)  和"freop ...

  5. C语言中连续调用rand函数,返回值不变

    C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...

  6. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图、带缺口的小提琴图、小提琴图)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图.带缺口的小提琴图.小提琴图)实战 目录 R语言使用ggplot2包geom_jit ...

  7. R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等

    R语言可视化.编写自定义函数可视化水平排序条形图(horizontal bar plot).自定义图像布局模仿经济学人杂志可视化效果.右侧添加标签数值图像方框.自定义背景色.水平条形图中间线条.网格线 ...

  8. R语言编写自定义描述统计计算函数、使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group、样本个数、均值、标准)

    R语言编写自定义描述统计计算函数.使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group using summa ...

  9. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩、离散色彩、色彩梯度)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩.离散色彩.色彩梯度)实战 目录 R语言使用ggplot2包geom_ji ...

最新文章

  1. CSS之定位(粘滞定位)
  2. java同步锁实例_Java lock同步锁使用实例解析
  3. JAVA学习(十)__MessageFormat用法
  4. linux 敏感标记 权限,闲话Linux系统安全(二)——强制访问控制(MAC)
  5. 错误:The project was not built due to Unparsed aapt error(s)
  6. 帝国CMS7.5二次元COS漫画分享漫展网站源码
  7. 瑞晟蓝牙来电语音软件下载_语音导出app手机最新版-语音导出app安卓免费版下载v8.3-领航下载站...
  8. 计算机函数说课ppt,信息技术应用 用计算机画函数图象ppt专用说课稿内容
  9. Linux 软件 缺少库查询
  10. 关于显存位宽、显存带宽和显存容量的理解
  11. 我想加入阿里,我该怎么做
  12. 多测师肖sir_高级讲师_第2个月第17讲讲解接口面试题
  13. 九阴真经选择服务器无响应,关于64位操作系统闪退问题的解决方案
  14. 古籍、中国通史、诗经、辞、、四书五经、诸子百家、四大名著、唐诗、宋词、明清小说、四库全书
  15. oracle查看所有表信息和字段信息以及注释信息等
  16. 关于锐捷认证与傻瓜路由器
  17. LaTeX--6--字体与字号
  18. Actions as Moving Points
  19. Python xlrd 读取Excel数字 数字丢失精度 小数位太长 求大神的解决方法(已解决)
  20. 14. 异步加载Js的方式有哪些?

热门文章

  1. Java 8 Friday Goodies:SQL ResultSet流
  2. ADFLogger的SLF4J绑定–缺少的部分
  3. 为什么我们不应该使用过多的线程
  4. Amazon Elastic Map Reduce使用Apache Mahout计算建议
  5. 使用CSS设置JavaFX饼图样式
  6. c语言系统时间的作用,C语言得到当前系统时间
  7. Linux 命令之 apt -- Debian Linux 新一代的软件包管理工具
  8. discuz3.1用哪个版本php版本好,Discuz应用中心安装模板提示版本号不匹配适用于X3.3 X3.2 X3.1的解决方法...
  9. pip安装mysql模块_使用pip安装mysql模块for python
  10. base64 二进制流java_读取和base64编码二进制文件