C++ is an extension for the C language that adds
OOP. Every piece of code of C will compile fine in C++ (except for some very special cases). C# is a proprietary language from Microsoft (although it is open source now), which is part of the .NET framework (there are 3 .NET languages at this moment: C#, Visual Basic and F#). Unlike C++ which has both an imperative and an object-oriented paradigm, C# is only object-oriented. It is also more
high-level than C and C++.
If you want to learn either C++ or C#, from a pragmatic perspective, I'd advise you C#, because it is one of the most in-demand languages for now: you can use it to create either desktop applications, multiplatform mobile application or even whole websites. And on a personal point of view, it is my favourite programming language because it is easy to code, easy to read, and it has a lot of nice features (Linq, WinForms, nullables...). You also don't need to bother with memory managment (malloc/realloc/free in C, or new/delete/RAII in C++). It is a bit hard to learn though.
Rust on its side is an exotic programming language, its semantic and its syntax looks a lot like a functional programming language, but yet it isn't. I don't like it, but it doesn't mean it's bad. But yet, it is not very popular and not in-demand.
If you know precisely in which field of IT you want to specialize, we could maybe give you more specific advices.