You know it's already page four and I've yet to see someone post something meaningful that had been done with a computer language, (Iji being excluded).
Ok lets break it down, (with a games based twist because OP said he wanted to make a Rougelike)
Java can be used on any computer, as long as that computer has a Java Virtual Machine. It can also be used as a web application as well. This means that your computer can run on any computer and be GUARANTEED to run exactly the same on each machine due to the VM.
yeah... as long as you forget about classes and polymorphism you should be fine....
So? You can do things which are very similar in C to classes and polymorphism. Structs and functions which will only take a pointer to a struct. Safe difference really. (As a side note objects are quite powerful, however can introduce extra resource requirements to a program)
Also if you can learn C, then your most of the way to C++.
However the problem with C and C++ is that it is not machine specific. If you want to have it for Mac, Linux and PC then there are some functions which will work on one, but not another. However at this point I'd say it's a moot point since your just beginning to learn.
C# is not considered as fast as C, or C++, however C# does have the advanage of being able to use .Net resources, and also gives you easy access to the XNA framework of which if you wanted to buy a membership, you can start making games to play on your Xbox. (All the programs to deal with sound as well are included if you use Visual Studio Express 2008.)
C++ and C# can support DirectX and OpenGL (Java as well through Java 3D but I don't know the details), and C can use OpenGl.
Also using C++ you can use SDL for input handling and drawing 2D graphics. (Java and C# take care of these themselves.)
Also you can use Lua in C and C++ (alot of people use it for AI in games)
And finally some of the other posters have pointed out there are a lot of tuts for C++.
I hope this gives you a bit more information about the languages.