Since VS likes to use precompiled headers, you might want to make sure that you haven't violated any of the assumptions. One source of trouble is to name any header at all ahead of the line that includes stdafx.h
.
Even in the without any precompiled headers issues, you might be inadvertently defining something that interacts badly with definitions in the stock headers. If you look inside stdio.h, you'll see that it has a number of interesting conditional compilation sections since the same file is distributed to a number of distinct platforms. Be sure to look at your project's settings, and if the issue is happening only when compiling a specific source file, then that file's compilation settings as well.
It is certainly worth starting a new project and checking if good ol' hello.c can be compiled...
#include <stdio.h>
int main(int argc, char **argv) {
printf("hello, world.\n");
return 0;
}
if not, then there is something seriously wrong with your VS installation.
One other possible but unlikely source of trouble would be if you have other compilers installed, and have somehow accidentally got VS using another stdio.h
entirely... An inappropriate INCLUDE environment variable used to be able to cause that, but I'm not certain it does in recent versions. I got burned by that a long time ago, and have been much more careful about what variables I let individual compilers set in the global environment since then.