Well...dunno about you guys, but I'm finishing a degree in computer engineering right now - my college taught C++ from the start, and I didn;t find it too hard, I picked it up pretty fast (I'd only done VB before) to the point where my prof yelled at me for working ahead and daring to ask a question in class...heh. I think part of the reason I found it easy, is that it was at a slower pace than trying to do a book in a month...
Regarding C#, I just started coding it, been using C++ for 2.5 years or so, and I went through it easily, found it to be....well...easy. It is a MUCH cleaner language than C++, and I've come to love C#.
For DirectX and stuff, I've recently gone that direction, I tried using XNA with C#, found a lack of code for it, then tried buying a book, found the book went and got itself lost in the math of doing an engine, then spit out 5 pages of nonfunctional code, didn't explain it, and did more math...I recently bought one of Frank Luna's books, as they are supposed to be good. Check out the gamedev forums & site for more info on game programming.
For pointers and memory and all, my prof for a data structures class used the book "Data Structures using C++" by D.S.Malik. I have no clue how good it is, I never opened the book...but just looking at the book now, it seems good, explaining its code and concepts. Chapters include:
OOD and C++
Pointers and Array-Based Lists
Standard Template Library
Linked Lists
Recursion
Stacks
Queues
Search Algorithms
Sorting Algorithms
Binary Trees
Graphs
STL II
Appendices:
Reserved Words
Operator precedence
character sets
operator overloading
header files
addition topics
c++ for java programmers
Looking over this, I see my class was really structured around the book - the class was very good, so in the end I recommend this book for those who want to learn C++.
Hope this helps.