由于本人太弱,,,不会lemon,,,也不会在ubuntu下安装lemon,所以我选择手写测试程序emmmm

首先要写这个东西我们要先知道对拍怎么写。

     for(int i = ; i <= ; i++)
{
system("./make >in.in");
system("./work >out.out");
system("./work1 >out1.out");
if(system("diff -bB out.out out1.out"))
{
printf("error in %d\n", i);
break;
}
else
{
printf("passed... %d\n", i);
system("sleep 1");
}
}

那么我们的测试程序就是基于这个对拍程序改的。

因为system里面的都是字符串,因此我们要用到字符串,但怎么用呢?

我们可以用一些小字符串来拼凑出一个大字符串。比如这样:

         s = "./work < " + tmp + ".in";

其中s和tmp都是string。

tmp即代表当前测试的数据组数。

因为通常我们的数据包是这样的:1.in 1.out 2.in 2.out……

因为后缀相同,所以我们只需要用tmp存下前面的数字就好了。那么我们要怎么获取呢?

 void get(int x)
{
tot = ;
while(x) m[++tot] = x % , x /= ;
tmp = "";
for(R i = tot; i; i --)
{
tmp += m[i] + '';
}
}

因为tmp也是字符串,所以我们可以手写一个get函数,来实现把数x变为字符串后放入tmp

值得注意的是,字符串的初始化不能直接等于0,(虽然我看网上好多blog都是直接=0,但是我这么用会报错,,,我也不知到为什么);

所以我们令tmp = "";

然后再把数放进去,放进去的方式也是和前面一样的加入一个个的小字符串。

于是我们现在有了应该放在system("")里的字符串,那么我们要如何放进去呢?

     for(R i = ; i <= ; i++)
{
get(i);
s = "./work < " + tmp + ".in";
system(s.c_str());
s = "diff -bB a.out " + tmp + ".out";
if(system(s.c_str()))
{
printf("get %d points\n", (i - ) * );
exit();
}
}

我们可以直接使用.c_str()来获取当前字符串的首字符地址,然后放入原本需要字符串的地方,注意不要 " "  哦。

放上完整代码:

 #include<bits/stdc++.h>
using namespace std;
#define R register int
string s,tmp;
int m[], tot; void get(int x)
{
tot = ;
while(x) m[++tot] = x % , x /= ;
tmp = "";
for(R i = tot; i; i --)
{
tmp += m[i] + '';
}
} int main()
{
for(R i = ; i <= ; i++)
{
get(i);
s = "./work < " + tmp + ".in";
system(s.c_str());
s = "diff -bB a.out " + tmp + ".out";
if(system(s.c_str()))
{
printf("get %d points\n", (i - ) * );
exit();
}
}
printf("get 100 points!!!

Linux相关——手写测试程序的更多相关文章

  1. 好记性不如烂笔头--linux学习笔记9练手写个shell脚本

    #!/bin/bash #auto make install httpd #by authors baker95935 #httpd define path variable H_FILES=http ...

  2. MySQL手写代码相关变量

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11777682.html 手写一些SQL代码时候需要用到的关键字. DELIMITER, BEG ...

  3. OpenCV+TensorFlow实现自定义手写图像识别

    完整版请点击链接:https://mp.weixin.qq.com/s/5gHXGmLbtO7m3dOFrDUiHQ    或微信关注“大数据技术宅” 继用TensorFlow教你做手写字识别(准确率 ...

  4. Atitit s2018.2 s2 doc list on home ntpc.docx  \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat

    Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系  法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别   ...

  5. [Python]基于CNN的MNIST手写数字识别

    目录 一.背景介绍 1.1 卷积神经网络 1.2 深度学习框架 1.3 MNIST 数据集 二.方法和原理 2.1 部署网络模型 (1)权重初始化 (2)卷积和池化 (3)搭建卷积层1 (4)搭建卷积 ...

  6. C基础 带你手写 redis adlist 双向链表

    引言 - 导航栏目 有些朋友可能对 redis 充满着数不尽的求知欲, 也许是 redis 属于工作, 交流(面试)的大头戏, 不得不 ... 而自己当下对于 redis 只是停留在会用层面, 细节层 ...

  7. 【项目】手写FTP服务器-C++实现FTP服务器

    X_FTP_server 手写FTP服务器-C++实现FTP服务器 项目Gitee链接:https://gitee.com/hsby/ftp_Server 简介 一个基于libevent的高并发FTP ...

  8. 使用PyTorch构建神经网络模型进行手写识别

    使用PyTorch构建神经网络模型进行手写识别 PyTorch是一种基于Torch库的开源机器学习库,应用于计算机视觉和自然语言处理等应用,本章内容将从安装以及通过Torch构建基础的神经网络,计算梯 ...

  9. caffe_手写数字识别Lenet模型理解

    这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...

随机推荐

  1. cakephp1.3中help form的一个小问题

    如果我们在模版里这么干 <?php echo $form->input('last_sold_date',array('autocomplete'=>'off','label'=&g ...

  2. Webservice HTTP

    由于项目需要:自己写了一个WebserviceDemo,把遇到的问题记下来. 方式一 :使用代理类来访问Webservice,此方式不讲解,感觉复杂(神坑). (生成的代理路径 C:\Users\ad ...

  3. 函数返回const,以便控制访问

    #include <stdio.h> class const_out_parameter{ private: ]; public: int* const_out_parameter_tes ...

  4. java中i=i++的解析

    int i = 0; i = i++; //答案是0 System.out.println(i); 执行以上代码,奇怪的是打印出来i的结果是0,说简单点,i++是一个表达式,是有返回值的,返回的是自增 ...

  5. uvaoj 10474 - Where is the Marble?(sort+lower_bound)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. 关于css,js显示不出来

    有时候取消了对js,css文件的拦截,但是在网页上还是显示不了,可以试一下下面的方法: 在jsp页面添加下面内容 css的调用路径用path来代替

  7. python里pickle模块

    Pickle模块用于将复杂的文件转化为二进制的文件 pickle模块一般是在源代码里面含有较大的字典或者列表等复杂文件时,我们如果将文件直接写在源代码里面,这样会使得代码很冗余,并且源代码文件所占空间 ...

  8. (C#)代理模式

    1.代理模式 为其他对象提供代理以控制对这个对象的访问. 远程代理:为一个对象在不同的地址空间提供举报代表.这样可以隐藏一个对象在不同地址空间的事实. 虚拟代理:是依据需要创建开销很大的对象.通过它来 ...

  9. a链接传参的方法

    //获取分案编号 var hrefVal=window.location.href.split("?")[1]; //得到id=楼主 //console.log(hrefVal+& ...

  10. leetcode-生成括号(回溯算法)

     转载出处:https://blog.csdn.net/yanerhao/article/details/68561290 生成括号     给出 n 代表生成括号的对数,请你写出一个函数,使其能够生 ...