I agree with a lot of the points raised in this thread.
I'm fairly comfortable with C++ and C#, and use them both on a common basis, and I love them both for different reasons.
First and foremost, I wasn't a C programmer before I started C++. My programming knowledge lies mainly in C++ and C#, so I can't vouch for C, however, I am familiar with benefits of using such a powerful, fast language. I'm just not a fan of the C style of programming. ( The C-Style Windows SDK or a little file input output is the closest thing I want to get to C, honestly.) The reason my weapon of choice is C++, however is simple: Objects. C++ gives you a lot of the speed of C, but with the addition of objects, and as this was the first language I dove into, my mind works nicely with objects, which makes the layout and design of applications much more manageable that would be without.
A few months after I began learning C++, I started toying with C#. Having done a little Windows Application Development with C++ and the windows 6 sdk, C# was a breath of fresh air. (Especially with the visual studio style of laying out the application.) I quickly decided that trying to manually draw all of the different things I'd want in a simple app, there was no purpose to do Forms development in C++ (Excluding managed C++), therefore any forms apps I create these days, I do so using C# and the .NET framework. Further, learning C# was just like getting a little extension of my C++ knowledge. Much of the syntax and flow is similar, so it makes learning it quick and easy for existing C++ programmers.
A quick thing about .NET: Though people criticize it because perhaps it isn't the fastest or sleekest, the layout and plethora of functionality it brings to windows apps is unparalleled in any other SDK.