C++文件读写: 观战韩服LOL遇到的麻烦

晚上看捞马一年前的直播时看到他在观战韩服王者局, 但是每次只看一局, 实属不尽兴.

突发奇想自己的国服客户端闲置了这么久不知道能不能用来ob一手, 于是百度, 应该是可以, 真好

首先更新客户端, 好了, 打开opgg下载bat, 好了, 但也是在这里卡住, 怎么都进不去, 百度许久终于找到答案, 打开下载的.bat文件, 命令行语句好像之前也了解了一点儿, 但是没心情看这么长串东西, 心烦, 又去百度, 找到了一个用E语言写的小插件, E语言... 不置可否. 

这个插件应该是用来转换什么的吧, 试了一下也确实有用, 就是每次要移动好几次, 没有一点儿观看体验, 想办法把它变简单一点儿吧. 

分别打开了转化前后的文件, 认真对比了一下(没有), 发现就是把原来的文件中第87行的字符copy到一个新的bat里面去, 那你还给源码?? E语言源码?? 这谁看得懂啊, 换成我们熟悉的java.. 不行, 这.class还得用命令行, 麻烦; 换成C吧? 算了算了, 心里有数, 剩下的大概就是c++了吧, 可以编译成exe, 体验应该很不错, 着手查资料!

首先我要做的事是把bat文件中的第27行读取出来, 扔到另一个新的bat中去

导包, 变量, 读取一气呵成, 直接copy

#include

#include

#include

using namespace std;

int main() {

        ifstream in("file1.txt");

        string line; if (in) { while(getline(in, line)) {

                cout << line << endl;

                out << line << endl;

         } } else { cout << "no such file"; }

}

这样就把 file1.txt 中的所有行都写入 file2.txt 中了, 提取第87行那也不是很难嘛~

这时候第二个问题来了, 为了方便起见, 我想做的是直接把下载的文件拖动到我们做的程序上让它执行, 而拖动过去程序就得读取参数(文件名), 幸好c语言中也有类似语法, 这个倒没费什么力气

main函数参数写成这样  ↓

int main(int argc, char* args[])

第一个参数argc表示程序得到的参数个数, 第二个为参数列表

经测试, 参数列表第一个元素居然是程序本身的名字>>> 又搞我心态

这时我们只要读取到第二个参数, 用它作为文件名打开就可以读取到我们要的目录了! 

哈哈, 这时我又发现了另一个大问题, 就是... 这一行字符居然还不是我们要的最终结果??? 

而且长度也不确定, 没办法, 又得用一下正则, 百度得到结果

终于搞出来了, 从晚上11点开始到现在已经第二天凌晨2点50了, 我太难了!

直接贴图, 不然太长了代码很丑


说说遇到的各种各样的问题吧.

        首先, 打包问题: 在clion上可以运行的代码找遍了整个工程文件夹都找不到一个地方有exe文件, 这着实让我头疼了好久, 不过总算在犄角旮旯里找到了积灰的 devcpp, 说实话许久不用这个, 现在用起来还觉得蛮亲切的, 毕竟是老伙计了.

可惜年代太久了, 在clion上完美运行的代码到这里就拉胯了, 我猜可能是编译器的问题吧, regex 库大概没有 regex 类, 反正爱情也就那样吧. 

逼不得已掏出了神器: Microsoft 公司的 visual studio为什么叫神器呢? 因为花费了我将近25G的C盘内存安装的它我压根就没怎么用过.

它存在的唯一价值就是用来完成学校里为了完成任务开设的 C# 相关课程, 到头来我唯一用得上他的地方还是前不久为了玩 leetcode 装的 c++ 扩展.

现实不也是这样吗, 你想要的资源得不到, 垃圾的东西却要强迫你接受, 觉得你受制于他就张牙舞爪极尽逞能之势想让让自己表现出一丝存在感, 殊不知我受制的另有其主, 与跳梁小丑们又有何干?

这大概就是成长吧, 用各种手段把你的棱角都磨平, 让你觉得吃亏是福, 但我无福消受, 你有你的苦衷我有我的难处, 请不要装模做样表现的是为我好就想方设法的发泄自己的情绪, 我不是傻子

好了继续, 正则匹配到想要的结果之后, 需要将该结果写入到对应的LOL客户端所在位置并执行, 写入是没什么问题但要同时执行它就显得颇有些难度.

调用了一个C语言里都不怎么用的函数(对我来说不怎么用) WinExec(); 用来执行一句dos命令并隐藏dos窗口, 但是我桌面在C盘游戏在D盘中间可不只是执行一句代码, 连着写三句就宛如弱智, 所以我决定把这三句代码单独出来!(感觉更弱智了嗷)

哦对了, 可能有人发现执行单独出来的三句代码前还多了个 cout << fib(35); 大概是我终于写完之后的第一次调试时发现我打不开我写入后的文件, 我以为是写入的速度太慢导致打开文件时该文件还是空的, 就写了一个我曾经写过执行用时最长的程序来做延时---递归 fib 数第35项值

写着写着感觉自己又找到了当初开始学编程时的心情, 那时候为了写一个递归代码废寝忘食但是觉得很充实, 可是现在虽然随手写出的就比当时写的最好的还要简洁可是心情却完全不同了, 我写它到底是为了什么呢? 写出来了又能怎么样呢? 为什么我会觉得因为观战这种事需要写代码的时候我能这么开心, 正襟危坐听别人讲课却让我昏昏欲睡? 我可能不适合做张开嘴等着别人来填的鸭吧

你可能感兴趣的:(C++文件读写: 观战韩服LOL遇到的麻烦)