There's a big debate between beginners on whether they should use C++ or C#, or any other programming language. For the C++ debate, here's the best way I've ever heard anyone describe it:
For People who Have made a few simple console Games and don't know how to progress to 2d:
C++ is more Complex than C# or Java. It is not "harder" like many people put it. It is simply more complex. In C++ it takes more lines of code to do things than many other languages and there is far more to handle. But, C++ allows you to do many things. Although it is rare to not be able to describe something in C++, many developers feel C++ allows them to describe their classes and coding Perfectly, while other languages can't. There are many programming languages for many things. If you start with C++ and you find it to hard, you're not doing anything wrong by starting to learn C# to. You can learn C# first, and it will probably be easier to start programming games in C# than in C++. If you started with C++ and you are having fun with it, by all means keep on going, experiment. If you are hopelessly lost and keep on having trouble, then just switch to C#, you're not doing anything wrong. Where you have problems is when people have just started a language and people on the forums tell them its not the best language to start out with. Just keep on going, experiment.
If you are trying to develop 2d games in C++, I highly recommend SFML. The official documentation is amazing and if you use that with a tutorial from, say, gamefromscratch, It isn't such a hard problem to tackle. Before starting SFML, though, you should probably make a few simple games like Tic-Tac-Toe, A text based rpg, checkers. Just some simple games in the console.
If you have a unique problem, please, please just post it in this thread, everyone would be happy to answer it. And experts, feel free to comment and debate on this thread to.