MP4电子书显示不完全的解决方案
MP4电子书显示不完全的解决方案
用过MP4看电子书的朋友,不知你是否遇到过这样的问题:
一个txt文件,在电脑上显示正常,但在MP4中每段的最后一行显示不完全。
其实这不是MP4的问题,是文件的问题。
在txt中,是以ASC码为10的字符作为换行符的,但某些网站提供的txt却是用13和10两个字节作为换行符的,这样的字符序列是MP4所不能识别的,于是产生了上面的问题。
目前我已找到了5种解决方案,这里只讨论编程的方法。
程序的要求是:删除当前文件夹及其子文件夹中所有txt文件中ASC码为13的字节。
这里我遇到了两个问题,
第一,我要获得当前文件夹及其子文件夹中所有txt文件的文件名,于是我调用dos命令
dir/b/s *.txt
或者
for /r %f in (*.txt) do ....
但问题是,我不知道怎么把产生的数据保存到c++的变量中去
现在的解决方法是,先把这些数据保存到文件中,再从文件中读取
这样做虽可以解决问题,但不直接,不优雅(很多时候我感觉程序的优雅性很重要)
怎么才能把dos中的数据存放到c++的变量中去呢?
第二,我要删除文件中ASC码为13的字符。
如果生成一个原文件的副本,那很简单,但这样会产生许多多余的文件,而且复制过程也很费时,怎么直接在原文件中操作呢?
换句话说,我只会对文件进行只读,只写操作,不会同时读写操作,还望各位不吝赐教。
为了验证程序的可行性,还请各位贴出完整的可直接编译的代码。