在编写c++程序时,我们通常使用标准输入输出流,也就是键盘为输入,屏幕为输出。但有时我们希望从文件输入或者输出到文件,比如在做acm题时为了避免反复人工输入的麻烦。解决这一问题的快速方法是,在你的main函数中加入如下代码:
#ifndef ONLINE_JUDGE freopen("input.txt", "rt", stdin); freopen("output.txt", "wt+", stdout); #endif
freopen函数用于重定向输入输出流,需要#include <stdio.h>。上面的代码是的程序用默认路径处的input.txt文件作为输入,output.txt文件作为输出。这样,程序不用做任何其他的修改,之前的标准输入输出操作将自动改变为相应文件内容的输入输出。
类似地,在windows中还可以用批处理文件的方式来重定向输入输出流,在已经生产的exe文件的目录下,创建一个bat文件,内容如下:
oj64<input.txt>output.txt
其中oj64为exe文件的名字,双击bat文件即可运行程序。这样做的效果和原理和第一种方法完全一样。