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\)

posted @ 2020-09-15 16:19  GK0328  阅读(200)  评论(0编辑  收藏  举报