Why not consider C++ or Java instead? Better to learn to thinkin the OO patterns to start with instead of having to come to it later.Having moved from FORTRAN to Algol to Pascal to C and Ada the jump from an unstructured Language (e.g. FORTRAN) to a Block Structured one (e.g. Pascal & C) was mild. But the change to OO really does take a bit of wrapping your mind around things. The younger guys who basically never learned functional decomposition and block structured programming seem to to do OO more naturally. For me I still have to think, the patterns for C++ after a year or so are only now slowly getting ingrained in my style, I still tend to think the old way and write C in C++ if I don't watch myself.
The other advantage is that Java and C++ can be had for free with nice helpful IDEs. The Eclipse CDT (http://www.eclipse.org/ ) with cygwin (http://www.cygwin.com/) provides a fairly full IDE (and you can tailor it's key interface to EMACS :-) ). Eclipse also looks to be a fair Java IDE and there is also netbeans (http://www.netbeans.org/).
As a book I would suggest one I have enjoyed using in its online form, Thinking in C++ by Bruce Eckel (http://www.mindview.net/Books/TICPP/ThinkingInCPP 2e.html). It has the advantage that there is also a second volume that takes you into using more advanced features (fancy templating, STL, and some more complicated patterns) that they can look into or you could use as a follow on.