Well I decided to get into C++ because it seemed like a fun project over the summer, and in the tutorials whilst using the hello world program example, it would not work because I had not included stdio.h. After using google I found out how to disable stdio.h so I could just use iostream. But what is stdio.h and what does it do? What are the negatives of disabling it?
<stdio.h> is a C header for I/O. It has things like printf, scanf, fopen, etc.
<cstdio> is the equivilent C++ header which has the same things.
<iostream> is another C++ header which has cout, cin, and other things. It uses a different type of I/O than cstdio which revolves around the concept of a 'stream' rather than a 'file'.
The two headers are very similar. Their main differences are in style and typesafety. iostream is more C++-ish whereas cstdio is more C-ish. iostream tends to be more typesafe and more verbose, whereas cstdio tends to be more succinct.
There's a big difference between stdafx.h and stdio.h. stdafx.h is a header used by VS if you've enabled precompiled headers (default setting for Windows applications).
If your project is set to use precompiled headers, then you typically MUST include stdafx.h and will get an error if you don't.
If your project is not set to use precompiled headers, then stdafx.h likely doesn't exist and you will get an error if you try to include it.
It all depends on how you set up your project.
Personally, I always select the "empty project" option from the VS project screen. But if you select any of the others, it's likely that it will enable precompiled headers by default.