First, don't rely on tutorials. That's a bad idea in general, but especially for C++, you're pretty much guaranteed that they'll teach it wrong. (for C, it might work better, since the language is much simpler, and fewer people get it wrong)
Instead, get a good book (like one of those suggested in the other answers), and go at it.
Supplement that with browsing the C++ questions here, or on other C++-related websites. (gamedev.net has a surprising number of good C++ programmers on their forums, so reading those can be enlightening too, whether or not you're into games development)
I wrote this answer a while ago, which you might also find useful, although it assumes you're already familiar with the basics of the language.
If you're serious about learning the language, you may want to get hold of a copy of the standard as well. It's not exactly easy reading, and it'll be a while before you're able to find your way in it, but in a language where there's so much you can get wrong, it's a good idea to look things up in the one authoritative source.
It might also make things a lot easier if you don't lump C and c++ together. They are surprisingly different, and finding a C tutorial (or C++ written by a C programmer) will only teach you bad practices. (Just mentioning this because you talked about learning either language)
Keep the two languages separate, and focus on one of them. Because while most C code will compile as C++, it's definitely not the right way to go.
Good C code is not good C++ code, and vice versa. (and most C++ programmers hate and despise C and vice versa)
I'd recommend learning C++, but there are reasons why C might be interesting too. I'll say that C++ is much more likely to make you cry when you have to use C# again, because while there are a lot of things that C# does better, obviously, there are also some crucial things it is missing, which C++ has had for a decade. It's probably more of an eye-opener than C would be.