Ok, as some of you might know, I'm working with Visual C++ 6 as my IDE.

As I read through books, tutorials, and blocks of code, I'm confused with the different styles of including headers in my programs. Let's say I want to include a basic iostream. What's the correct way to do it, and why? I've seen all these notations:

#include <iostream> // works with my compiler
#include <iostream.h> // doesn't work
#include "iostream" // works
#include "iostream.h" // doesn't work

I haven't found any definitive information about this yet. As far as I can tell, some of the formats might be for C (not C++), and some might be compiler-specific. But as it is, I'm completely baffled! I like to know exactly what's happening with a line of code before I include it in a program.

Also, what if I want to use a different header, like math or string? I know they exist, but I don't know where to find them, how to implement them, or what functions/data types/etc. they offer to me. Guess and check doesn't work here!

And finally, further down the road, I'd like to be able to write my own header files and include them in my CPP files. It sounds like there's a different protocol for doing this... am I on the right track?

Thanks very much for your help! You guys are great.