File Operations
2024-09-07 10:50:58
在刷题测试程序时,为了避免每次都手工输入,我们可以把输入数据保存在文件中;为了避免输出太长,我们将输出也写入文件中,方便与标准答案文件进行比较。
文件使用一般有两种方法:输入输出重定向、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命令的一些参数:
最新文章
- ActiveMQ在Linux中的安装
- git上传文件出错的时候
- 选中统计winform
- CSS:谈谈栅格布局
- 仿照jquery封装一个自己的js库(一)
- MVC &ndash; 14.ajax异步请求
- 连接不上mysqlworkbench问题解决方法
- 城堡 (spfa+cheng)
- bzoj4627: [BeiJing2016]回转寿司
- EXTJS中的grid显示实际行号
- C语言第七节流程控制
- java 回传参数
- Android 在Intent中传递接口
- python参考手册--第4、5、6、7章
- 关于div宽度和高度的100%设定
- php执行linux命令的6个函数
- 【阿里聚安全&#183;安全周刊】 全美警局已普遍拥有破解 iPhone 的能力 | 女黑客破解任天堂Switch,称硬件漏洞无法修复
- golang编程之我见
- goim源码分析与二次开发-comet分析二
- beta版1.1.2