This is a university assignment for which I aim to create an LZW algorithm implementation to create a small tool similar to `gzip` and `gunzip` that can compress and uncompress files in a lossless fashion.
This project is written is C++17, compiled with clang under a UNIX environment. Other compilers and environments will not be tested.
Currently, five different options are available to the user:
-`-h` or `--help` will show how to use `projet_lzw`
-`-c` or `--compress` tells `projet_lzw` to compress the input file
-`-u` or `--uncompress` tells `projet_lzw` to uncompress the input file
-`-i <file>` or `--input <file path>` specifies the input file to be compressed or uncompressed (**MANDATORY**)
-`-o <file>` or `--output <file path>` specifies the name of the output file. If not used, the default output name for compression is `output.lzw`, and the default name for uncompressing is `<filename>_uncompressed`.
By default, `projet_lzw` will uncompress the (mandatory) input file.
It is planned to add in the future a sixth option, `-p` or `--passes` that will allow to compress multiple times the input file.