今天想起一个恶作剧的程序,便动手写了起了。起初我觉得是挺简单的。之后便发现没那么简单。
本来就是一个文件拷贝的事情,但我要将文件存储的二进制文件中,而且文件还不小。问题首先来了,不过简单,写一个辅助程序将文件转换成十六进制的字符串这个简单马上就写成了。
由于文件过大之后,必须修改 Zm 编译选项才能通过编译。
但接下来问题又出现了,拷贝后的文件比原来大好多,这是为什么了,苦想了好久,原来拷贝二进制文件(非文本文件),必须见文件写入的方式设为以二进制流的形式打开,以前写远控的时候也碰到相同的问题。真是的,写下来告诫自己以后不要再犯同样的错误。害的我写了一个diff程序,来对比文件。到文件使用字节流打开时,向文件中写入 \n (\x0a),windows实际写入的是\r\n (\x0d\x0a),这个一定要注意。使用二进制流打开写入,就不会有问题了。