Handle the case where a parameter is missing from the command line
Handle the case where a parameter value is invalid
Aesthetic changes and comments
Fix some GCC warnings
Add robustness: in case parsing a file fails, the data structure is no longer altered