C++
fstream文件流C++ 为我们提供了一个标准库 fstream用于文件处理,只要一如头文件
逐行读取文件nc文件中的指令都是以行为分割的,这里我们就采用逐行读取的方式来读取文件,这里用到string类型所以需要引入#include
查找内容是否存在我们需要查找内容中是否存在M30指令,所以我们在读取到每行数据时要去判断该行中是否有我们需要的数据,这里我们得到的string类型数据,所以我们可以使用find方法来查找是否存在key,如果不存在则返回string::npos。如果你用的是char*可以使用strstr方法来实现字符串比对。
内容替换当我们找到了对应的字符串时接下来我们要做的就是将该字符串用M99指令替换掉,这个比较简单通过find找到该字符串所在的位置,然后通过replace方法将其替换掉即可。 这里需要注意的是传入的是指针而非字符串,否则更改的数据不会返回的原来的数据中的。
插入内容为了重写内容我们需要把拿到的数据临时存下,当文件中没有M30指令时我们需要往文本中添加M99指令,指令必须在%之前所以这里我们需要插入数据。这里我定义一个空字符串,然后通过append函数是向string的后面追加字符串,这样就把每行的数据进行了临时存储。添加“\n”是用来换行的,插入数据我们可以使用insert函数来实现。
保存内容读取完之后我们对内容进行的适当的修改,接下来就是将数据再次保存起来。文本文件的读写可以利用插入器(<<)和析取器(>>)来进行进行写和读,保存内容实际就是将数据写入到文件中。这里需要注意的是我是新定义了一个save通过插入器(<<)向文件中写入内容。