【Tools】使用批处理文件对拍程序

关于对拍

OI比赛的时候经常会发生这么一种情况:
第X道题,写好了暴力并能够保证暴力的正确性,但突然想到了一个更为高效的算法,但无法确定程序是否正确,这个时候,就要使用对拍解决问题。
有些人是用c++程序进行对拍的,而我喜欢用bat文件(因为写起来短啊)。


我们假设这道题的题目名为problem,数据生成的可执行程序名为random.exe
两个程序的可执行程序名名称为problem1.exe和problem2.exe。

先发一波对拍效果图
这里写图片描述
最后一行是我打了Ctrl + C终止程序因为这样才能截图

两个版本的bat对拍

cpp内重定向写法

首先是第一种版本,就是三个源程序中都写了freopen,且random.exe的输出文件为problem.in,而两个程序所对应的输出为problem1.out和problem2.out
接下来就是对应的bat

@echo off
:loop
    random.exe
    problem1.exe
    problem2.exe
    fc problem1.out problem2.out
    if not errorlevel 1 goto loop
    pause 
    goto loop

bat内重定向写法

其次是第二种版本,就是三个程序的freopen都不被执行,相比来讲也更加随性,毕竟名字可以乱取了
对应的bat,效果和第一种是一样的。

@echo off
:loop
    random.exe > problem.in
    problem1.exe < problem.in > problem1.out
    problem2.exe < problem.in > problem2.out
    fc problem1.out problem2.out
    if not errorlevel 1 goto loop
    pause
    goto loop
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值