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();
}