Do I need to learn C?
No, you do not need to. Period.
But learning any new programming language is beneficial in the long run. Learning languages based on different programming paradigms is even more beneficial. Whether isit is anyan OOP language (Smalltalk or C++), anya dynamic language (Lisp, Clojure, Python), functional (Lisp, Haskell, Erlang), concurrent (Erlang, Go, Algol 68, Smalltalk), andor whatever (Fortran 03, Perl, Forth) other new fangledfangled paradigm strikes your fancy they helpfancy; learning different languages helps exposure you to multiple lines of thinking, each with their own strengths and weaknesses for tackling the task at hand.
Fortran is still dominate in numeric computing, COBOL is still a mainstay at large insurance companies, Unix, BSD, and Linux are still based primarily on C. Old code doesn't lose its value with age always because it doesn't necessarily wear out like mechanical devices that need to be replaced over time. So older language can be valuable in terms of employability versus newnewer language's cool factor.
Just as studying to become multi-lingual in natural (human) languages arguably improves your ability to express yourselfimproves your ability to express yourself, the same carries the same sort of bonus for computer languages.
So while I do think it is important (over time) to learn to become fluent not only in multiple languages, but it is more important to be fluent in multiple programming paradigms of style or thought.
I am pretty good with C++, good as in I am comfortable with the language, I have read Accelerated C++ and done almost all the exercises
I'm going to back up, and say that C++ is a rich and complex language, it will take years of exposure and constant practice to become truly fluent in all of its rich (or ugly) subtleties.
Take your time, and keep learning is the most important advice I can give you. For someone else's take on it, I encourage you to read Peter Norvig's Teach Yourself Programming in Ten Years.