So I've been working on my project Const Port for a little while now. I just released a new version today. In the next version I'm aiming at adding some configuration options that can be customized by the user. However, as of yet I have not decided what the best way of going about this would be. I'd like to save all of the configuration variables in a way that can be easily edited with a text editor while also being easy to parse/create in code. I've enjoyed watching Jonathon Blows programming streams and I like the way the files look. However, trying to conceptualize how the code for parsing those files is set up, I feel like there is a lot of room for ambiguity and problems if people miss a space or something. Sublime Text being my text editor of choice I also feel that maybe going down a similar path wouldn't be such a bad option. They use JSON files for all configuration files. I can see a lot of trade-offs with this option as well though.
So here's my question: What sort of configuration files formats do you think work best? Do you have any examples of code used to serialize/deserialize this format in C/C++?
I'm open to all suggestions or comments about this subject. On a slightly off topic note if you have any suggestions for options you'd like to see in Const Port please post them on the project's forum thread.