在调试程序的时候,如果输入数据量很大,为了避免重复手动地输入大量的数据,为了节约宝贵的时间,提高调试代码的效率,可以使用 freopen();函数来实现。
函数原型:FILE *freopen ( const char *filename, const char *mode, FILE *stream );
【头文件】 include "stdio.h"
【参数说明】
filename: 要打开的文件名
mode: 文件打开的模式,和fopen中的模式(r/w)相同
stream: 文件指针,通常使用标准流文件(stdin/stdout/stderr)
具体的使用方法就是在代码前面加上一句 freopen("input.txt", "r", stdin);
再在和源文件同一个文件夹里新建一个文档命名为"input.txt".把测试数据写入里面即可。
还可以再加一句 freopen("output.txt", "w", stdout);
这样程序运行成功之后,就会自动在文件夹下建一个文档"output.txt",并且对应于测试数据的输出答案已经写入该文档。
还有一个很重要的问题:如果你不想输入或输出到文件了,要恢复句柄,可以重新打开标准控制台设备文件,这个设备文件的名字是与操作系统相关:
DOS/Win: freopen("CON", "r", stdin);
freopen("CON", "w", stdout);
Linux: freopen("/dev/console", "r", stdin);