ACM刷题的时候,一道题老是过不了,输出的时候又找不到错误。手头刚好有同学AC 过的代码,突然就想到了可以同时遍历所有测试范围,输出到文件,通过比较这两个输出文件的内容,找到不同点,可以反过来找到那个测试用例不能通过,进而找到问题代码。于是,动手敲代码。
然而,遍历的规模有点大。电脑卡着,先去看会视频,嗑瓜子,回来还在跑。只能中止程序,放弃遍历的想法。电脑卡的要死,删文件的时候才发现,已经有30+G 的文件。想想也有点**, 几个数字的差别,指数级的差别。只能改为选择部分数据,测试两段代码。
不过,虽然不能遍历,但选取部分测试用例的时候,写的这段代码还是用得上了。就是可以简单的比较输出结果的差异,把结果打印出来。
#include<fstream>
#include<iostream>
#include<string.h>
using namespace std;
int main(){
ifstream in1("out1.txt");
ifstream in2("out2.txt");
char cont1[2048], cont2[2048];// can be larger
for(int i=1; in1.getline(cont1, sizeof(cont1)) && in2.getline(cont2, sizeof(cont2)); i++){