【发布时间】:2017-10-04 18:53:40
【问题描述】:
#include <fstream>
int main()
{
// compress
std::ifstream inFile("test.input");
std::ofstream outFile("test.compressed");
char c;
while(inFile >> c)
outFile << c + 1;
// decompress
std::ifstream inFile2("test.compressed");
std::ofstream outFile2("test.output");
while(inFile2 >> c)
outFile2 << c - 1;
// close
inFile.close();
outFile.close();
inFile2.close();
outFile2.close();
return 0;
}
这是我的代码。可能有些东西我不明白,因为对我来说test.input 应该与test.output 相同,但它们不是。
【问题讨论】:
-
如果你要打开一个
ifstream到一个你已经有一个ofstream句柄的文件,首先刷新它。在开始任何与减压相关的事情之前,请致电outFile.flush()。 -
-
更好的是,不要将物品放置在周围超过需要的时间。将压缩代码括在大括号中(或移动到另一个函数),然后对解压缩代码执行相同操作。此外,您可以依靠流析构函数以这种方式关闭文件,无需显式调用
close。 -
“做反向操作”是什么意思?