Logo wfirstzhang 的博客

博客

【未完工】使用 Testlib 出数据输入和验证数据输入(WyOJ,并非典藏版)

...
wfirstzhang
2026-01-17 10:57:31
密码是111111

前言

testlib 是一款由 Mike Mirzayanov 开发的开源项目。本家在这里 -> https://github.com/MikeMirzayanov/testlib。另外,我制作了 WyOJ 复制版,在这里 -> https://oj.ryp.org.cn/blog/wfirstzhang/post/147

OI-Wiki 上对于此已经有不少介绍了,我并不觉得我能写得更好。

因为 testlib 可以保证生成的数据在不同环境上一样,我推荐大家使用它造数据。

命令行参数

通常来说,我们在 OI 中会使用如下方式声明主函数:

int main();

不过,编写 testlib 程序时,我们一般用这种方式声明:

int main(int argc, char** argv);

其中 argc 表示命令行参数的数量,argv 即为命令行参数。 argv 下标从 0 开始。

读者可以尝试使用这个程序自己探究一下 argcargv 中存在什么东西。

#include <iostream>

int main(int argc, char** argv) {
    using namespace std;
    cout << "argc = " << argc << endl;
    for(int i = 0; i < argc; i++)
        cout << argv[i] << endl; 
    return 0;
}

如果你在 Windows 中这样调用这个程序:

test.exe argv[1] argv[2] argv[3]

你应该得到这样的输出:

argc = 4
test.exe
argv[1]
argv[2]
argv[3]

Generator(数据生成)

Validator(数据输入验证)

杂话

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。