I/O Manipulation: Among others, the manipulator dec is found in the iomanip library. It is used to force cin to interpret numbers in base 10. cin's default behavior is to guess the number base by the first character/digit of the number: 01462 octal (base 8) (equals 2+6*8+4*64+1*512=818 base 10) xAF hexadecimal (base 16) (equals 15+10*16=175 base 10) 462 decimal (base 10) So a leading zero (0) is seen as an octal value. A leading letter x is seen to indicate heXadecimal. Anything else is seen as a decimal value. Of course all of this only applies to integer inputs... Garbage Characters: Human notation is full of garbage characters which simply denote position to the human brain. The computer (and probably your program, too) could care less. But to allow our human users a more natural interface, we can simply ignore those garbage characters on input. For instance: 9:00 would be 9 in the morning 9°6'42" would be 9 degrees, 6 minutes, 42 seconds (4.2,-9) would be an XY coordinate of 4.2 x and -9 y (847)555-1234 would be a phone number in area code 847, exchange 555, and line number 1234 4/8/01 would be April 8th, 2001 To remove such positional characters, you can simply use a character variable in your input stream: cin >> hour >> temp >> minute; Would read an hour, a temporary character, and a minute. cin >> temp >> area >> temp >> exchange >> temp >> line; Would read in a temporary character (for '('), an area code, a temporary character (for ')' -- overwriting the '('), an exchange, a temporary character (for '-' -- overwriting the ')'), and a line number. Pretty Output: Although it would look nicer to be able to display 9:09 for the user, cout doesn't like to place leading 0's on numbers. After all, how would it know how many or that that first 9 didn't need a leading 0? To fix this, there are formatting options in chapter 5 (which we'll learn in 122) or branching instructions (which we'll get to in chapter 2.4 and 7).