I'd actually suggest C.
C++ is a fair sight hairier and not quite so well-standardised (ANSI C++ has not yet really caught on the way ANSI C has). As the creator of C++ said, "Within C++, there is a much smaller and cleaner language struggling to get out."
C is a strict subset of C++ and hence a simpler language to learn. Following on from that, anything you learn in C can be applied directly in C++.
C++ adds object-orientation to C; "learning C++" will teach you that particular implementation of the OO paradigm (modulo which version of C++ you're using), but won't teach any more about the whys and wherefores of the paradigm than any other OO language. In fact, since C++ has some unorthodox ideas about OO, and is really just "C with OO slapped on top", it may be more difficult to come to grips with OO programming in C++ than it would in language that has more fundamental support such as Python, Smalltalk, Java or Eiffel. And if you're not going to go for OO programming, then C++ without OO is just C.
The talk that "C is dated" in my opinion doesn't really have much validity. There are two types of fool. The first type says "This is old and therefore good." The other says "This is new and therefore better." So I ask, "So it's something like thirty years old. So what?" The fact that it's still being used to write operating systems suggests that a better language for that job hasn't come along.