I tend to prefer MSYS over Cygwin, just because it produces native Win32 applications (not requiring the Cygwin DLLs).
http://www.mingw.org/
The download pages are a bit confusing, but someone there made a nice tutorial page to help out
http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
Dev-C++ uses MinGW also, but it is an old package. Once you download and install it, it is worth your time to upgrade the MinGW installation to the latest 4.x (as per the instructions at MinGW).
Code::Blocks and Eclipse are also very good, popular IDEs that can work with MinGW.
Another good option (besides VC++) is Turbo C++ Explorer.
VC++ Express
http://www.microsoft.com/express/vc/
Turbo C++ Explorer
http://www.turboexplorer.com/cpp
The Windows command prompt is far less friendly than *nix shells, but if you prefer it you can set it up to be just as useful. (I use it almost exclusively when programming on Windows.) The MSYS is a pseudo-POSIX environment. It comes with a version of
sh that works on Windows, so if you are more comfortable with *nix shells you can live out of it if you like. (It is just a little buggy though. You may have to start it up a couple of times, and kill zombie sessions with the Windows Task Manager between startups.)
Hope this helps.