Once you have some basic programming knowledge, consider trying the "thinking in C (Foundations for C++ and Java)" seminar-on-CD (freely downloadable from the authors website at
http://www.mindview.net if you want to make the move into C. As the name implies, it's sort of a "crash course" in C, not intended to try to teach you everything about C, just what you need to go on to C++ or Java. Also recommend
http://www.eskimo.com/~scs/cclass/ as a good introduction to C in general. I read this, then went through the CD, and I think it was worth doing both, as they have different goals, so show you different things. The notes also go into a little more depth in some places.
From there you can read "Thinking in C++" (volume one and two) also available from the same site, free. Excellent books
I'm actually understanding a lot of what I'm reading, and being able to put a fair amount into practise on the end of chapter exercises. That may be mostly down to my attitude change towards the matter though... but I wouldn't advise taking them on without any programming knowledge, because they are geared somewhat towards people who have at least a *small* amount (variables, functions, data types, and other basic concepts, and you should be fine, I think) of knowledge, and want to apply it to learning C++. If I remember rightly, they don't actually introduce these concepts (though I think the
course notes I mentioned earlier go into these basic concepts, but I'm not entirely sure)
...BCD 0001001100110111... *doh!*