对拍需要 loop.bat、makedate.exe、a.in、a.exe、a.out、std.exe、std.out ,注意这几个文件要全部在同一文件夹下。
loop.bat 比较代码(在记事本里写,后缀改成.bat)
:loop
makedata
a
std
fc std.out a.out
if %errorlevel%==0 goto loop
pause
makedata.exe 用来捏数据
#include<bits/stdc++.h>
//捏数据
signed main()
{
freopen("a.in","w",stdout);//把结果输出到a.in里面
srand(time(0));//让每一次生成的随机数不一样
std::cout<<rand()%100000<<" "<<rand()%10000;
return 0;
}
a.in 存放捏的数据
std.exe 存放暴力代码
#include<bits/stdc++.h>
//这个文件放暴力代码
signed main()
{
freopen("a.in","r",stdin);//从a.in文件中读入
//标准输入流stdin
freopen("std.out","w",stdout);//输出到stdout里
//标准输出流stdout
int a,b;
std::cin>>a>>b;
std::cout<<a-b;
return 0;
}
std.out存放暴力代码结果
a.exe 存放不确定的代码
#include<bits/stdc++.h>
//这个文件放不确定的代码
signed main()
{
freopen("a.in","r",stdin);//从a.in文件中读入
//标准输入流stdin
freopen("a.out","w",stdout);//输出到a.out里
//标准输出流stdout
int a,b;
std::cin>>a>>b;
std::cout<<a+b;
return 0;
}
a.out存放不确定代码的结果
如果对拍程序停下来,说明发生错误。
现在点开a.in就是出现错误的输入