If all you want is to write a few cool, mildy ambitious programs, then you might be best off just plunging into C++, perhaps after a primer lesson in C. This will allow you to focus on what you want to do, as opposed to forcing you to worry about tying up all the loose ends.
If you are really serious about learning how to program, then it becomes a question of how much you are willing to spend. You will probably have to part with a few dollars for books and/or courses, but most importantly you will have to invest time. If you want to master the Object Oriented paradigm, a cleaner, quicker route (believe it or not) would be to learn Java. Java is an elegant, structured language built on the OO paradigm. True, it is under-powered and not well suited for any real-life application, but it will teach you good OO programming habits. Then move to C++, a language whose power and flexibility provide you will industrial strength abilities and, unfortunately, the means to violate the OO paradigm in every way possible (C++ is so general that it allows you to program in an OO style, but doesn't force it).
The best book to learn C is "The C Programming Language" by Kernighan and Ritchie. For Java, consult the book(s) by Gosling. For C++, avoid using the book by Stroustrup in conjunction will Visual C++. It can be argued that they represent two different languages (the book covers the ANSI/ISO C++ Standard).