第二次寒假作业
第二次作业
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语言懂的太少,好多东西都只能用笨方法,看到别人用的一堆好用的