在刷题测试程序时,为了避免每次都手工输入,我们可以把输入数据保存在文件中;为了避免输出太长,我们将输出也写入文件中,方便与标准答案文件进行比较。

文件使用一般有两种方法:输入输出重定向、fopen。

  • 重定向
    这种方法比较简单,只要在main()函数的开始加上:
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);

就可以将标准I/O(键盘输入、屏幕输出)转为读写文件。

万一比赛要求标准I/O,而你还想用文件操作来测试代码时,提交时切记删除重定向语句。

为了避免你忘记这茬,可以如下处理:

#define NATIVE
#include <stdio.h> int main(int argc,char** argv)
{
#ifdef NATIVE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
//your code here return ;
}

这样子,本机测试时可以使用重定向;如果要求标准I/O,提交时只需删掉#define NATIVE即可。

  • fopen
    如果比赛要求使用文件读写,但禁止重定向方式,这时可以使用fopen方式:
#include <stdio.h>

int main(int argc,char** argv)
{
FILE *fin, *fout;
fin = fopen("input.txt"."rb");
fout = fopen("output.txt","wb"); int a; //把scanf改为fscanf,把printf改为fprintf
fscanf(fin,"%d",&a);
fprintf(fout,"%d",a);
//your code here fclose(fin);
fclose(fout); return ;
}

这时候,如果要求标准I/O,只需要:

fin = stdin;
fout = stdout;

最后,简单说下文件比较(windows下):
进入cmd,如果两个文件在同一目录:

fc .txt .txt

如果两个文件不在同一目录:

fc "c:\1.txt" "d:\2.txt"

可以使用fc /?查看fc命令的一些参数:

最新文章

  1. ActiveMQ在Linux中的安装
  2. git上传文件出错的时候
  3. 选中统计winform
  4. CSS:谈谈栅格布局
  5. 仿照jquery封装一个自己的js库(一)
  6. MVC &ndash; 14.ajax异步请求
  7. 连接不上mysqlworkbench问题解决方法
  8. 城堡 (spfa+cheng)
  9. bzoj4627: [BeiJing2016]回转寿司
  10. EXTJS中的grid显示实际行号
  11. C语言第七节流程控制
  12. java 回传参数
  13. Android 在Intent中传递接口
  14. python参考手册--第4、5、6、7章
  15. 关于div宽度和高度的100%设定
  16. php执行linux命令的6个函数
  17. 【阿里聚安全&#183;安全周刊】 全美警局已普遍拥有破解 iPhone 的能力 | 女黑客破解任天堂Switch,称硬件漏洞无法修复
  18. golang编程之我见
  19. goim源码分析与二次开发-comet分析二
  20. beta版1.1.2

热门文章

  1. json的fromjson的方法使用。可以在volley中进行使用
  2. 树状数组模板--Color the ball
  3. https的秘钥公钥以及之间的会话流程
  4. public、private、protected继承区别
  5. JPA入门例子(采用JPA的hibernate实现版本) --- 会伴随 配置文件:persistence.xml
  6. JS生成随机颜色(rgb)
  7. 第三章:shell变量知识进阶
  8. day23作业
  9. stand up meeting 12/10/2015
  10. D - Three Integers CodeForces - 1311D