专栏文章

对拍Linux实现

科技·工程参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqyufov
此快照首次捕获于
2025/12/04 12:58
3 个月前
此快照最后确认于
2025/12/04 12:58
3 个月前
查看原文

准备

- 正确代码 / 待拍代码 各一份(apple_bl.cpp / apple.cpp)

- 数据生成器(make.cpp)

使用 C++ 生成

- 对拍脚本(DP.sh)

解释如下
BASH
g++ apple_bl.cpp -o apple_bl
g++ apple.cpp -o apple
g++ make.cpp -o make

# 编译生成可执行程序

while true 
do
    ./make > 1.in
    ./apple_bl < 1.in > right.out
    ./apple < 1.in > wrong.out

    # 生成数据并且产生输出

    diff -Z right.out wrong.out
    if [ $? -ne 0 ]; then
        echo "" # 换行用
        cat 1.in
        echo ""
        break
    fi

    # 比较,不同则输出产生不同的输入输出
done
$?是上一个语句产生的返回值(上面就是diff函数返回的,不同:1 / 相同:0)
-ne相当于!=

- 获取可执行权限

chmod +x DP.sh

- 运行

在终端(Linux 终端或 VScode终端)输入./DP.sh运行。

- 效果

或者直接在1.inright.out / wrong.out查看。

评论

0 条评论,欢迎与作者交流。

正在加载评论...