I used to use Code::Blocks. I can't remember how you set it all up. It was decent, but I still preferred VC++ because it made some things easier. Right now I use MSVC++ 10 Express.
Code blocks:
http://www.codeblocks.org/
If you're using windows, I'd go with MSVC++ 10 Express (scroll down):
http://www.visualstudio.com/download...sual-studio-vs
BUT Code::Blocks is more cross-platform, so if you run a cross-platform project, go with Code::Blocks. That way you don't have to create two different project builds: one for windows, one for other.
Additionally, Code::Blocks can probably have extended functionality with plugins. I never tried those.
It's probably a headache to set all this up at first, especially if you haven't done it before. I remember when I wrote my first code in QBasic. There was no setup. It was very easy to get going.