acm对拍程序 以及sublime text3的文件自动更新插件auto refresh

acm等算法比赛常用---对拍 以及sublime text3的文件自动更新插件auto refresh

对拍

对拍即程序自动对比正确程序的运行结果和错误程序的运行结果之间的差异

废话少说, 直接上操作步骤 :

1. 首先建立generator.cpp和data.txt 作用 : 生成测试数据

#include<bits/stdc++.h>
using namespace std;


int main(){
	freopen("data.txt","w",stdout);	//重定向输出
	srand(time(NULL));
	xxxxx ; //此处为你想生成数据的操作
	return 0;
}

2. 然后建立AC.cpp和WA.cpp AC.txt和WA.txt 作用 : AC.cpp是绝对正确的程序, WA.cpp是你错误的程序

AC.cpp读取data.txt, 并输出内容到AC.txt

WA.cpp读取data.txt, 并输出内容到WA.txt

AC.cpp

#include<bits/stdc++.h>
using namespace std;

int main(){
	freopen("data.txt","r",stdin);
	freopen("AC.txt","w",stdout);
	xxxx ; //程序段
	return 0;
}

WA.cpp

#include<bits/stdc++.h>
using namespace std;

int main(){
	freopen("data.txt","r",stdin);
	freopen("WA.txt","w",stdout);
	xxxx ; //程序段
	return 0;
}

3. 最后建立result.bat -- 对拍比较

步骤 :

首先建立result.txt, 输入以下内容 :

@echo off
:loop
	generate.exe
	AC.exe 
	WA.exe 
	fc AC.txt WA.txt
if not errorlevel 1 goto loop 
pause
goto loop

之后将文件后缀改为.bat, 之后双击即可运行, 每次按键均会执行一遍数据生成--ac--wa---数据比较的过程, 并输出不相同的数据部分

最后整个文件夹应当是这样的 :

1591427306199

suiblime Text3 实现文件自动更新内容

实现了上述对拍操作后, 由于bat执行后只能给出数据不同的部分, 还需要打开两个txt文件才能查看全部数据

每次执行generate后产生不同的数据, 所以每次对拍结果并不相同.

在sublime text3中打开txt文件在你关闭bat之前是不会自己变化的, auto refresh的引入可以让文件内容自动更新

安装插件方法 :

ctrl + shift + p ----- install package ---- Autorefresh

然后命令行输入autofresh, 可以开启/关闭自动更新, 并可以保存这一文件状态

1591427653066

效果 :

1591427767198

按任意键循环继续对拍, 可以看到两个文件都自动更新了内容

1591427805784


over~~

原文地址:https://www.cnblogs.com/roccoshi/p/13054836.html