First, as it as been pointed out, C and C++ are 2 different languages. C++ was created as a superset of C, but both languages evolved since that time and some constructs that are allowed in C are not in C++ and vice versa.
If you want to learn a language, pick one of them first and focus on it. You can't properly learn either of them while studying the other at the same time as you'll just keep confusing them (unless your brain is very differently organized from mine ;) ).
You'll soon realize there are 3 different areas in programming:
- Technic: how to realize what you have in mind in your language of choice (C++ features Object-Oriented or Generic programming for example)
- Design Patterns: high-level view of the code / dependencies organization (how to decouple your code so that changing one tiny bit does not have repercussions throughout the project)
- Algorithmic: Learn about algorithms and data-structures, understand what complexity (time/space) is
Of course, the real difficulty is that the 3 areas interact with each others so that you can't really learn about them in isolation and that's why you need to pick up a programming language to be able to experiment with the last two. But don't focus solely on technic, learning the C or C++ standard by heart won't make you a good programmer, it'll make you a good technician who needs an architect to direct his work.
Thanks to the advent of the Internet, you can probably search for your errors there and ask on websites (such as this one) when you just can't find out by yourself, be they technical errors (compile errors, program crashes) or design / algorithmic errors (though those are difficult to spot since it usually work, it's just either inelegant or slow)
A last word, it's not because it works that it's the only way to do it. You should try and come up with various ways (exploring various paradigms) so that you can increase your experience and get a good feeling of what paradigm use for what task, when they are suitable or clumsy etc...