For desktop apps, I would use C++ or C#. Mostly I'm familiar with C# for Windows apps, but for CLI I'd use C++.
These languages are high-level languages and have many features C does not. For example is object oriented programming, which is used in all modern apps. C++ does also, for example, feature generic programming and type safety that allows you to quickly write generic code and catches many more bugs at compile time rather than run time. It is also faster than C in some cases (see qsort vs std::sort, for example) [note that C++ is not always faster than C or vice versa).
Higher level languages also contain more data structures and bigger standard libraries. For example, C++ offers a dynamic array container (std::vector) and a linked list (std::list).