Practical C++ Programming, 2nd Edition by Steve Oualline The following corrections were made to the 1/04 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem {61} code at top of page; all the strcpy commands in example 5-11 NOW READ std::strcpy all the strcat commands in example 5-11 NOW READ std::strcat {246} IN PRINT: Last paragraph, third sentence; "The member function bad..." NOW READS: "The member function fail..." {246} IN PRINT: Code segment at bottom of page; "if (data_file.bad()) {" NOW READS: "if (data_file.fail()) {" {249} Table 16-2 - std::ios::noreplace The ::noreplace entry HAS BEEN DELETED from Table 16-2. {256} Example 16-4 out_file << cur_char; NOW READS: out_file.put(cur_char); {259} IN PRINT: Top half, description for 'mode'; Protection mode for the file. Normally this is 0644. NOW READS: Protection mode for the file. Normally this is 0666. {260} IN PRINT: Half-way down under 'size'; The first 'close' in "Finally, the close call closes the file:" HAS BEEN REFORMATTED in constant width font. {260} Under 'size'; The word 'write' in "The format of a write call is:" HAS BEEN REFORMATTED in constant width font. [427] Examples 24-4 and 24-6; All references to class 'number' HAVE BEEN REPLACED with 'integer'. {433} IN PRINT: definition of "set" Items in the set are unordered and unique. NOW READS: Items in the set are ordered and unique. {436} IN PRINT: "Creating a Waiting List with the STL List" section, second paragraph, first sentence; "We can't use a set as a waiting list because a set is unordered." NOW READS: "We can't use a set as a waiting list because a set stores the elements in order."