You've ask an incredibly decisive question, most people will give you there opinion. I will say from the start that i lean towards C++, but a also know c#. here is the breakdown-
There are three levels of programming languages LOW, High, and Scripting.
C++ is a Low level( some will argue that its is a mid)
C# is High level ( can also be use as a scripting language)
low level languages are far more powerful because they give you full control over your process with little to no supervision. you will have to manage your memory, create trash collection, even define your own data types ( a string is NOT a primitive in C++). C++ is the de-facto language of professional game developers. with c++ you can write every thing from scratch or use a pre-built engine. the choice is yours.Some find this power intimidating and call c++ "hard". that not really true, but it will have the steepest learning curve. As you are coming from C this may not matter to you. Like i said i lean towards C++, if you master this one, learning the other languages will be a snap.
High Level Languages run with-in an "interpreter", that is another program, usually called run-time environments. C# uses the .Net(dot net) framework. in order for your program to run on your target system, it must support .net(Iphone, for example don't). High level languages are still pretty powerful, and include a lot of features in the language, that you would have to implement yourself in low-level languages like memory management. this usually results in faster prototyping, as many details about the operating system are abstracted. ( for example, doing things like opening a file in the file-system, are much easier, C# doesn't care what platform you are on) if this sounds appealing also check out Python, or Java.
Scripting Languages, You may have noticed some people tell you to download programs like unity or gamemaker studios. those programs use scripting languages. these are languages that give instructions to another program rather than to the computer itself. some of these programs will use established languages like unity and c#, while others will even create there own language like gamemaker studios and GML.( unity use C# syntax, but for this definition it is using it more as a scripting language than a programming language). Scripting language are usually very specialized. prototyping( getting a rough draft of your game) can be done virtually instantly, with little or no setup. I personally feel this puts you in a box, but its nice if you are trying to get out the gate. also check out JavaScript( not to be confused with java) and WebGL
Conclusion:
the answer to your question depends on your intentions. if you are learning programming for the sake of learning programming or because you are legit trying to get in the game creation industry; C++ hands down. if you like programming and want to have alot of ground covered for you, go with a High Level language, (keep in mind that c# is Microsoft proprietary, Java is equivalent and runs everywhere.). IF you've got a killer idea for a game and just want to jump right in without much concern for how it all works, learn Unity, GameMaker, or something of that nature.
// have fun
var goal;
goal = input();
if(goal == 'learn programming'){
alert("Learn C++");
}else if(goal == "make a game fast"){
alert("learn UNITY"):
}else{
alert("check out Python or Java");
}
My friend and I are currently learning the language C
If you want to learn a C based language or move onto an evolution of C. Then your only choices are C++ or Objective-C.
C# is *not* a C based language. It goes by that name purely for marketing by Microsoft a long while back. It is simply Microsoft's spin on Java (not Javascript).
That said. If you don't need to keep with a C based language and are happy to look at others, then C# could be a valid choice because it is at least "C styled" (in the same way as Java). Though I often hear that beginners find Python easier when starting out. Especially if they already have some knowledge of C since many of the functions are called similar (because it wraps libc closely).
You are Partially correct. C# is Microsoft's version of Java, but Java itself is a C derivative. Java and C# are like half-brothers :P