Linux对拍
\(Linux\)对拍标准代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int i;
for (i=1;;i++){
printf("The result of No. %d Case is: ",i);
system("./data");
system("./std");
system("./test");
if (system("diff std.out test.out -B -w -q")){
printf("Wrong Answer\n");
return 0;
}
else printf("Accepted\n");
}
return 0;
}
system("./data"); 运行造数据程序
system("./std"); 运行程序1
system("./test"); 运行程序2
system("diff std.out test.out -B -w -q") 的意思是比较std.out和test.out
尤其注意后面的 -B -w -q(最有用的三个)
-B表示不检查空白行
-w表示忽略全部的空格字符(-b好像也行,不晓得区别在哪里)
-q表示仅显示有无差异,不显示详细的信息(需要查看详细信息则去掉,注意看详细信息容易被大量输出卡爆)
还有其他忽略功能可以看这里
注意,忽略功能非常重要,否则你就算和正确答案一模一样,拿来比较的时候不加忽略功能可能还是会返回\(Wrong \quad Answer\)