本文,记录C++-IO-重定向。
使用场景:
通常,在acm题目或者自己实现各种小测试代码,甚至是很多开源的测试例子,很多都是使用标准IO来完成测试的。而此时,一般都是提供一个输入文件,带有测试数据,再提供一个输出文件,用于装载输出数据,是实验结果。
下面是几种方式,根据不同情况自行选用。
方案一:
C:freopen()系统函数
C++:rebuf()重载函数
C/C++ 标准输入输出重定向,
链接
缺陷:需要修改文件名,才能重新测试另一个文件。
改进:可以直接将测试文件当作一个参数,经由main参数检验后打开,这样就可以了。
也就是运行 $main test.txt
方案二:
方案一的另一个改进,就是让直行程序在shell中实现重定向
也就是运行 $main << test.txt