对拍(windows环境)
2021-01-16 21:14
标签:随机 是你 std erro 遇到 格式 打开 保存 结果 我们在调试代码时,经常会遇到困难,其中之一是程序检查不出错误,手造数据太麻烦。如果我们可以很快写出一种暴力但复杂度较高的程序,用于对比两个代码的运行答案,则可以使用对拍来检查程序存在的问题。 在对拍之前,我们需要写一个mk.cpp来造数据 在main函数的前面写上一句 意为:该程序运行的结果输出到名为1.in的文件里,文件打开方式为”写“(w:write),输出方式为标准输出。 mk.cpp的作用是造随机数据,所以程序里要随机出输入的数据,比如n,m,边权等,并且按给定输入格式输出到文件中。 用于对比答案的暴力程序。在main函数内第一行写上: 意为:该程序运行时将从1.in中读入数据,文件打开方式为”写“(r:read),输入方式为标准输入。 紧接着第二行写上: 意为:程序以写的方式打开std.out文件,输出方式为标准输出。 写上这两句后,该程序的输入就能读入用mk.cpp造的数据,并且将运行结果输出到std.out中。 这是你在调试中的程序。在main函数的前两行写上: 从1.in读入数据,输出结果到solver.out中 以上程序按顺序编译运行后,得到的exe文件也要在同一目录下。 然后就可以写一个在windows下对拍的命令行啦! 新建文件 右键,点击编辑 在编辑框内写上 保存 点击 观察运行结果,如果有不一致的地方,会将输入数据,两个程序的运行结果显示在黑框内,利用该组数据来调试即可 对拍(windows环境) 标签:随机 是你 std erro 遇到 格式 打开 保存 结果 原文地址:https://www.cnblogs.com/JWizard/p/12210005.html“对拍“是什么
对拍的步骤
需要准备的文件(在同一目录下)
mk.cpp
freopen("1.in","w",stdout);
std.cpp
freopen("1.in","r",stdin);
freopen("std.out","w",stdout);
solver.cpp
freopen("1.in","r",stdin);
freopen("solver.out","w",stdout);
windows命令行
step 1
dp.bat
step 2
mk//运行mk.exe
std
solver
fc solver.out std.out//对比两个文件,fc :file compare
if errorlevel=1 pause//如果对比出现不一致,停止程序
%0//不关闭命令窗口
step 3
dp.bat
文件,即可自动运行step 4