第二次寒假作业

第二次作业

GitHub的网址
https://github.com/Sunerniu/Second.git

第二次寒假作业要求

阅读题目

大概要求,根据规则集来匹配数据集,给出匹配结果(匹配位置或-1

学习内容

怎么匹配

规则

用C

跨文件匹配??

函数分工使用?

学习过程

1.学习跨文件?

c语言读取txt的文件?
File fp=fopen("文件名","指令名")
具体可以看这边 C语言详解 FILE文件操作
读取文本的内容如何放置?

读取文本后先匹配,输出匹配结果

C语言如何按行读取文本文件 - 简书 (jianshu.com)

在此次作业有用的地方

2.学习匹配?

IP地址转换

IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

先将IP地址四个整数值转为二进制,四个二进制数值拼接之后,再由二进制转为十进制。

先写一个将规则集的ip地址进行转换

这个点交大概率就是没做完了

匹配的地方

不足

很奇怪的地方,就有些数据匹配出来的结果是匹配失败,大概每十五个里面有一个是匹配不出来的,一直找不到原因,然后还有一点是每一次输出的结果都是只有前507个是可以正常匹配的,之后便开始全部不行,
说实话想不到有办法可以好优化的?一条数据然后一条一条规则得检索好像是最好的方法(可能是我人傻

大概这个就是这次作业的全部概况

本来想直接交的,因为一个奇怪的地方卡住了,就是当你访问过多没有去关闭文件导致在507行之后进不去while,然后改这个点改了快三天没找出来,晚上心态炸了本来想直接交,先去问了一个比较牛逼的舍友,发现上面的原因,加入一个关闭文件的就可以了,就一个点害

这也导致本来想晚上美观一下代码来不及
上面比较好看的代码有bug还没改出来,先给出一个可以看的,话说数据是不是有问题,总是零零碎碎有几个对不上?去那一行看一下好像确实数据有问题????

最终半成品
往exe中输入文件名即可,没来得急使其完美一下,过年静不下心来导致一直拖,方法很笨,sscanf都不怎么会用,最笨方法来做了属于是

有些-1我觉得数据有问题??

收获

感觉不是很难,主要是自己写的bug多,一调试就全是问题,调试太头疼了
主要是学习文件的操作吧,c语言懂的太少,好多东西都只能用笨方法,看到别人用的一堆好用的

posted @ 2022-01-30 22:02  孙二牛  阅读(45)  评论(1编辑  收藏  举报