Mistakes in software are quite commonplace and you will learn this as you go along. It is always worth being aware of the latest version even when it comes to books. The reason for this is that compared to simple subjects like physics and chemistry, computer programming is an extremely complex discipline that is still in its infancy - and before you take offence at that, think of what physicists and chemists were doing 40 years into the disciplines for a fair comparison, rather than C21st scientists with 1000s of years cumulative experience behind them. Think - and cringe - about Ada Lovelace's experiments with radioactive materials for a recent example within your background.

You will already be aware of software being released with bugs present - Microsoft are often criticised for this, but Windows isn't buggy because Microsoft are crap, it's buggy because that's the nature of software. Think of how much money Microsoft have and give them some credit; they employ some of the best engineers in the business, and Windows *still* goes out with bugs, some of which are laughably major, or laughable by anyone who doesn't truly understand the complexity of computer programming. Linux gets off lightly, but it's much simpler due to the lack of a need to maintain backward compatibility, and its usability is legendarily bad (even with 30 years IT experience behind me, 20 of which are professional and including a degree in computer science, each time I try to use Linux I just give up on it for the simple reason that I think collecting my email should take 3.5 seconds and not 15 weeks of reading HOWTOs and being insulted as a n00b on any forums where I post basic questions).

So unfortunately, yes, you can expect this a lot. To the author's credit he has posted - and made freely available - the updates on his website, and he doesn't make you buy the next reprint to get the corrections, as often seems to be the case with physics and chemistry books.

You can expect it a lot from your software as well. When you've learn quite a bit and are capable of putting together 200-line C++ programs, remind me of this conversation and post one, and I guarantee to be able to find at least one bug in it.

(Which reminds me of an amusing anecdote: every computer program contains at least one bug, and every computer program can be reduced by at least one instruction. Therefore, every computer program can be reduced to one instruction, which is wrong.)

As for how much he rambles and isn't clear about subject changes, I can't comment because I haven't read the book. You admit to being a beginner and perhaps part of the problem is your lack of understanding (sorry if that's a bit too blunt, time prevents editing it to a "nicer" form). But computer publications, including manuals, are well known for one major failing in that usually you have to know what they're talking about before you can understand them.

Don't take raving reviews by professors as authoritatively as you do. First off, professors are not in the same position as you; they are not beginners, so are not reading as beginners. Secondly, professors often have a financial interest in writing a good review, they sometimes get commission off book sales - this is why "last year's publication" is never on the recommended book list, it has to be this year's, that you have to buy at full price instead of second hand at 1/10th the price from last year's students.

If it's the recommended book for the course then probably you have to have it. But check the comp.lang.c++ FAQ for recommended books; if you're struggling to learn from the class and have to learn from a book, then after you've asked why you're paying for tuition and not getting any, think about picking up one or two of the books at the top of the FAQ list. Books do not always work for your personal style (which is why I think a "recommended book" for a course is always a bad idea) and maybe your brain just isn't wired to grok Nyhoff's style. Avoid Schildt.