Libsndsfile is plain C, but will do what you want without any fuss. You could write a WAV specific C++ wrapper on top of this in a few minutes.
libsndfile is superb, but sometimes you don't want to link against external libraries in your code. I have some structs/classes which I use if in-memory-handling of wav files is sufficient. You can have a look at them at:
http://cubic.org/~doj/ebay/wav.tar.gz
If you have to handle large files you should go the libsndfile way. -- ---> Dirk Jagdmann ^ doj / cubic ----> http://cubic.org/~doj -----> http://llg.cubic.org
