0
我想在C++中制作一个简单的文本文件压缩器和解压缩器。 所以我的压缩程序接受参数从用户在cmd中以这样的方式C++访问多个文件只有一个路径已知
compress abc.txt
现在它是什么,创建一个压缩文件,abc.cmp和隐藏的信息文件,info.cmp
。
解压缩时,假定这两个文件都在同一个目录中。
现在我的问题是:如果文件abc.cmp与我的decompress.exe不在同一个目录中,用户应该给出abc.cmp的路径,但是如何使用该路径访问info.cmp
?
例如用户将只能TPE:
decompress C:/abc.cmp
我的程序需要访问信息文件很好,但用户不应该提供路径
void readInfoFile(string &line, int &n, int &k, unsigned char * &cstream, int &count)
{
ifstream fin("info.cmp");
if (fin.is_open())
{
for (int i = 0; !fin.eof(); i++)
{
if (i == 0)
fin >> n;
else if (i == 1)
fin >> k;
else
{
getline(fin, line, '\0');
}
}
fin.close();
}
for (int j = 1; line[j] != '\0'; j++)
{
line[j - 1] = line[j];
}
count = ceil((float)(((float)(k))/8));
cstream = new unsigned char[count]();
}
void compressedFileStore(unsigned char * &readingArray, int count, char*argv[])
{
ifstream fin(argv[1], ios::in|ios::binary);
fin.read((char*)readingArray, count);
readingArray[count] = '\0';
fin.close();
}